I各サブクラスAとB私はRubyの背景から来Pythonのアクセスその文字列名によってクラスを入れ子に
が含まれている必要があり、クラスfooとbarは、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
私はRubyについて知らないけど、入れ子のクラスはPythonではまれです。 Pythonにはアクセス修飾子がないので、実際にはそれほど多くはありません。 – user2357112