所以我有一组类和一个带有其中一个类名的字符串。如何根据该字符串实例化一个类?
class foo:
def __init__(self, left, right):
self.left = left
self.right = right
str = "foo"
x = Init(str, A, B)
我希望 x 成为类 foo 的实例。
原文由 klynch 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以我有一组类和一个带有其中一个类名的字符串。如何根据该字符串实例化一个类?
class foo:
def __init__(self, left, right):
self.left = left
self.right = right
str = "foo"
x = Init(str, A, B)
我希望 x 成为类 foo 的实例。
原文由 klynch 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答920 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
如果您知道涉及的名称空间,则可以直接使用它——例如,如果所有类都在模块
zap
中,则字典vars(zap)
就是该名称空间;如果它们都在当前模块中,globals()
可能是获取该字典的最简便方法。如果类不都在同一个命名空间中,那么构建一个“人工”命名空间(一个专用字典,类名作为键,类对象作为值),正如@Ignacio 所建议的,可能是最简单的方法。