我有以下变量:
var = 'MyClass'
我想基于变量MyClass
创建var
的对象。像var()
这样的东西。我怎么能用Python做到这一点?
答案 0 :(得分:0)
>>> def hello():
... print "hello world"
...
>>> globals()["hello"]()
hello world
答案 1 :(得分:0)
假设您将类'模块作为变量,您可以执行以下操作,其中您想要的类“MyClass”位于模块“my.module”中:
def get_instance(mod_str, cls_name, *args, **kwargs):
module = __import__(mod_str, fromlist=[cls_name])
mycls = getattr(module, cls_name)
return mycls(*args, **kwargs)
mod_str = 'my.module'
cls_name = 'MyClass'
class_instance = get_instance(mod_str, cls_name, *args, **kwargs)
此函数将允许您从程序可用的任何模块中获取任何类的实例,其中包含构造函数所需的任何参数。