Angesichts der folgenden Paketstruktur:Stellen Sie alle Klassen in einem Paket als Klassenattribute
master.py
models/
__init__.py
model1.py
model2.py
model3.py
wo jedes Modell * .py-Datei eine oder mehrere Klassen enthält, wie kann ich eine Klasse in master.py erstellen, die dynamisch Importe jede dieser Klassen und setzt es als ein Attribut von sich selbst? Derzeit habe ich folgendes:
class DB:
def __init__(self):
from models.model1 import foo, bar
from models.model2 import foo2
from models.model3 import bar2
self.foo = foo
self.bar = bar
self.foo2 = foo2
self.bar2 = bar2
aber dies erfordert, dass ich jedes importierte Modul und Klasse explizit angeben. Ich möchte, dass der Prozess automatisch/soft-codiert wird, sodass ich die DB-Klasse nicht aktualisieren muss, wenn ich später Modelle hinzufüge oder entferne.
Interessant; Ich möchte nur ein bisschen herumspielen, bevor ich es richtig ankreuze, hoffe es macht dir nichts aus. Und du hast Recht - Modelle sind ein Paket, ich habe vergessen, __init__.py in meinem Beispiel zu zeigen – Noah
@Noah keine Sorgen! –