Jim*_*ans 9 python introspection
您可以像这样获得Python对象的完全限定类名(请参阅此问题):
>>> import Queue
>>> q = Queue.PriorityQueue()
>>> def fullname(o):
return o.__module__ + "." + o.__class__.__name__
...
>>> fullname(q)
'Queue.PriorityQueue'
>>>
Run Code Online (Sandbox Code Playgroud)
你如何做反过来,即映射一个完全限定的类名称,如'Queue.PriorityQueue'相关的类对象(Queue.PriorityQueue)?
Ery*_*Sun 11
您可以在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()
Run Code Online (Sandbox Code Playgroud)
在旧版本中,您可以使用该__import__功能.它默认返回包导入的顶级(例如xml).但是,如果将其传递给非空fromlist,则返回指定的模块:
name = 'xml.etree.ElementTree.ElementTree'
parts = name.rsplit('.', 1)
ElementTree = getattr(__import__(parts[0], fromlist=['']), parts[1])
tree = ElementTree()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |