Ich habe Klassen Foo und Bar, die jeweils Unterklassen A enthalten sollte und BPython Zugriff verschachtelte Klassen durch ihre Zeichenfolgennamen
ich aus einem Rubin Hintergrund kommen, in Ruby ich von Foo::A, Foo::B, Bar::A, Bar::B
Während der Ausführung schreiben würde Haupthauptschleife, ich brauche Bar::x
für python Mein aktueller Ansatz auf x in [A,B..Z]
und rufen die spezifischen Konstrukteure (wieder Ruby-Syntax sorry) Foo::x
, iterieren ist verschachtelte Klassen wie diese
class Foo:
...
class A:
...
class B:
...
class Bar:
...
class A:
...
class B:
...
Und ich dachte an die Stringdarstellung Klassen [ 'A', 'B', ... 'Z'] und einen Weg finden, ihre Konstrukteure auch nennen
# main loop :
for x in ['A',...'Z']
Foo.construct_nested_class(x, params)
Bar.construct_nested_class(x, params)
I eine Klasse von seiner String-Darstellung zu erhalten, dieses Stück Code gefunden
def str2Class(str):
return getattr(sys.modules[__name__], str)
Aber dann bin ich sicher nicht, wie ich es verschachtelte Klassen gelten.
Können Sie mir helfen, entweder diese construct_nested_class(x, params)
Methode zu definieren, oder vielleicht einen anderen Ansatz vorschlagen.
ich Python bin mit 2,7
Ich weiß nicht über Ruby, aber Verschachtelung Klassen ist ziemlich ungewöhnlich in Python. Es bringt nicht wirklich viel, da Python keine Zugriffsmodifikatoren hat. – user2357112