我在这个字符串中有这个类的名字:
className = "MyClassName"
我已经在我的模型中导入了MyClassName
。
有没有办法使用它:
Object = MyClassName()
制作if else语句:
if className == "MyClassName":
Object = MyClassName()
elif className == "MyClass2":
Object = MyClass2()
我希望有更好的方法
答案 0 :(得分:3)
您使用sys.modules[__name__]
获取当前模块,然后使用getattr
获取课程,就像这样
var = "MyClassName"
import sys
mod = sys.modules[__name__]
getattr(mod, var)()
或@lanzz suggested in the comments,
globals()[var]()
@Ashwini Chaudhary in the chat room的建议,
classes = {"MyClassName": MyClassName, "MyClass2": MyClass2}
然后,您可以使用classes
字典来获取相应的类。我更喜欢这种方式,特别是如果输入来自用户。
答案 1 :(得分:0)
您可以使用eval功能。
var = "MyClassName"
ob = eval(var + "()")