您可以像这样获得Python对象的完全限定的类名(请参阅this question):
>>> import Queue
>>> q = Queue.PriorityQueue()
>>> def fullname(o):
return o.__module__ + "." + o.__class__.__name__
...
>>> fullname(q)
'Queue.PriorityQueue'
>>>
您如何进行逆运算,即将像
'Queue.PriorityQueue'
这样的完全合格的类名称映射到与其关联的类对象(Queue.PriorityQueue
)? 最佳答案
您可以在2.7中使用importlib:
from importlib import import_module
name = 'xml.etree.ElementTree.ElementTree'
parts = name.rsplit('.', 1)
ElementTree = getattr(import_module(parts[0]), parts[1])
tree = ElementTree()
在旧版本中,您可以使用
__import__
函数。默认情况下,返回包导入的顶层信息(例如xml
)。但是,如果将非空的fromlist
传递给它,它将返回命名模块:name = 'xml.etree.ElementTree.ElementTree'
parts = name.rsplit('.', 1)
ElementTree = getattr(__import__(parts[0], fromlist=['']), parts[1])
tree = ElementTree()
关于python - 如何在Python中将完全限定的类名映射到其类对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7218865/