Python动态类名

OHL*_*ÁLÁ 0 python dynamic

可能重复:
python模块的动态加载
python:如何动态地向类添加属性?

我有一个包含文件名和类名的字典如何导入这个类名,我该如何创建这个类?

例:

classNames = { 'MCTest':MCTestClass}
Run Code Online (Sandbox Code Playgroud)

我想导入MCTest并创建MCTestClass.

tau*_*ran 5

你必须使用这个__import__功能:

http://docs.python.org/library/functions.html# import

来自doc页面的示例:

>>> import sys
>>> name = 'foo.bar.baz'
>>> __import__(name)
<module 'foo' from ...>
>>> baz = sys.modules[name]
>>> baz
<module 'foo.bar.baz' from ...>
Run Code Online (Sandbox Code Playgroud)

要从baz实例化一个类,你应该能够做到:

>>> SomeClass = getattr(baz, 'SomeClass')
>>> obj = SomeClass()
Run Code Online (Sandbox Code Playgroud)