我有Foo和Bar类,每个类都应该包含子类A和B
我来自Ruby背景,在Ruby中我会写Foo::A, Foo::B, Bar::A, Bar::B
在执行主循环期间,我需要迭代x in [A,B..Z]
并调用特定的构造函数(再次Ruby语法抱歉)Foo::x
,Bar::x
我目前使用python的方法是使用像这样的嵌套类
class Foo:
...
class A:
...
class B:
...
class Bar:
...
class A:
...
class B:
...
我正在考虑使用类['A','B',...'Z']的字符串表示,并找到一种方法来调用它们的构造函数
# main loop :
for x in ['A',...'Z']
Foo.construct_nested_class(x, params)
Bar.construct_nested_class(x, params)
我还发现这段代码从字符串表示中获取一个类
def str2Class(str):
return getattr(sys.modules[__name__], str)
但后来我不确定应该如何将它应用于嵌套类。
您能否帮助我定义此construct_nested_class(x, params)
方法,或者建议采用不同的方法。
我正在使用Python 2.7
答案 0 :(得分:0)
for name in nested_class_names:
getattr(Foo, name)(params)
getattr(Bar, name)(params)
getattr(x, name)
相当于访问由x
引用的字符串命名的name
属性。