0

我有以下变量:

var = 'MyClass'

我想创建一个MyClass基于变量的对象var。类似的东西var()。我怎样才能在 Python 中做到这一点?

4

2 回答 2

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)

此函数将允许您从程序可用的任何模块获取任何类的实例,以及构造函数需要的任何参数。

于 2013-06-22T13:10:56.203 回答
0
>>> def hello():
...     print "hello world"
... 
>>> globals()["hello"]()
hello world
于 2013-06-22T13:02:57.877 回答