我正在将代码从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中的此任务,但不适用于我。
我误会什么?有没有更好的方法从字符串实例化类?