Namensräume und Klassen
Ich versuche, einige schreiben (meiner Meinung nach), lesbaren code in Python. Ich brauche ein Modul, das enthält eine Reihe von Klassen. Theoretisch weiß ich alles, das notwendig ist, um dies zu erreichen: ich kann einfach ausgedrückt-class-Definitionen in einer einzigen Modul-Datei.
Für eine bessere Lesbarkeit will ich jedes class-definition in einer separaten Datei (Sie fangen an, ziemlich langwierig!), und alle diese Klassen in einem Verzeichnis. Immer, wenn ich neue Datei anlegen, obwohl es der Inhalt sichtbar sind, wo ich Sie brauche, class definition, die ' s in den Gültigkeitsbereich mit nicht benötigten Modul.
Wie soll ich es tun? Was ist 'Python' Weg, das zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Importieren Sie alle
__init__.py
, und dann haben die Verbraucher importieren Sie das Paket.Wenn Sie vermeiden möchten, hardcoding vollständige Pfade, Datei, Klasse und Funktion von Namen in vielen Orten, Sie konnte etwas tun, wie die folgende, die dynamisch importiert (fast) alle Python-Dateien, die es findet in einem Paket im Unterverzeichnis.
Der Schlüssel ist zu erinnern, dass die
__init__.py
- Datei ist eine weitgehend unbehinderte Python-Skript selbst, und ist daher frei zum ausführen ziemlich aufwendige Verarbeitung der eigenen, um zu bestimmen, was in der package-Namensraum.Datei
package\__init__.py
:Datei
package\Class1.py
:Datei
package\Class2.py
:Datei
package\Class3.py
:Datei
usepackage.py
:Ausgabe vom laufen
usepackage.py
: