python 2和3之间的getattr(module_name,class_name)差异

时间:2019-10-14 22:56:39

标签: python python-2.7 python-3.7 getattr

我正在将代码从Python 2移植到3。Python2版本使用此代码段成功实例化了一个类:

#at this point, "module_name" is just a string
module = __import__(module_name, globals(), locals(), [])
#class_name is just a string
my_class = getattr(module, class_name)
class_instance = my_class()

在Python 3中,相同的代码失败并出现AttributeError,表示我的模块名称没有我的类名称的属性。我在这里阅读的其他类似问题表明,getattr应该适用于Python 3中的此任务,但不适用于我。

我误会什么?有没有更好的方法从字符串实例化类?

0 个答案:

没有答案