Python 将类用作字符串

Python 将类用作字符串,python,python-2.7,Python,Python 2.7,我用如下字符串表示该类的名称: className = "MyClassName" if className == "MyClassName": Object = MyClassName() elif className == "MyClass2": Object = MyClass2() 我已经在我的模型中导入了MyClassName 有没有一种方法可以使用它: Object = MyClassName() 我想到了什么 使if-else语句如下所示: className

我用如下字符串表示该类的名称:

className = "MyClassName"
if className == "MyClassName":
    Object = MyClassName()
elif className == "MyClass2":
    Object = MyClass2()
我已经在我的模型中导入了
MyClassName

有没有一种方法可以使用它:

Object = MyClassName()
我想到了什么 使if-else语句如下所示:

className = "MyClassName"
if className == "MyClassName":
    Object = MyClassName()
elif className == "MyClass2":
    Object = MyClass2()

我希望有更好的方法

您可以使用
sys.modules[\uuu name\uuu]
获取当前模块,然后使用
getattr
获取类,如下所示

var = "MyClassName"
import sys
mod = sys.modules[__name__]
getattr(mod, var)()
或者作为

建议:


然后,您可以使用
classes
字典来获取相应的类。我更喜欢这种方式,尤其是当输入来自用户时。

您使用
sys.modules[\uuuu name\uuu]
获取当前模块,然后使用
getattr
获取类,如下所示

var = "MyClassName"
import sys
mod = sys.modules[__name__]
getattr(mod, var)()
或者作为

建议:


然后,您可以使用
classes
字典来获取相应的类。我更喜欢这种方式,尤其是当输入来自用户时。

您使用
sys.modules[\uuuu name\uuu]
获取当前模块,然后使用
getattr
获取类,如下所示

var = "MyClassName"
import sys
mod = sys.modules[__name__]
getattr(mod, var)()
或者作为

建议:


然后,您可以使用
classes
字典来获取相应的类。我更喜欢这种方式,尤其是当输入来自用户时。

您使用
sys.modules[\uuuu name\uuu]
获取当前模块,然后使用
getattr
获取类,如下所示

var = "MyClassName"
import sys
mod = sys.modules[__name__]
getattr(mod, var)()
或者作为

建议:

然后,您可以使用
classes
字典来获取相应的类。我更喜欢这种方式,尤其是当输入来自用户时。

您可以使用函数

var = "MyClassName"
ob = eval(var + "()")
您可以使用函数

var = "MyClassName"
ob = eval(var + "()")
您可以使用函数

var = "MyClassName"
ob = eval(var + "()")
您可以使用函数

var = "MyClassName"
ob = eval(var + "()")

您可以使用
object=globals()[className]()
问题是。。为什么要这样做?可以使用
object=globals()[className]()
问题是。。为什么要这样做?可以使用
object=globals()[className]()
问题是。。为什么要这样做?可以使用
object=globals()[className]()
问题是。。你为什么要这样做?哪一个更好,你的还是兰兹的?哪一个更好,你的还是兰兹的?哪一个更好,你的还是兰兹的?哪一个更好,你的还是兰兹的?