Ich versuche, einige Module für meinen eigenen Gebrauch zu organisieren. Ich habe so etwas:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
In lib/__init__.py
möchte ich einige Klassen definieren, die verwendet werden sollen, wenn ich lib importiere. Ich kann es jedoch nicht herausfinden, ohne die Klassen in Dateien zu trennen und sie zu importieren __init__.py
.
Anstatt zu sagen:
lib/
__init__.py
settings.py
helperclass.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib.helperclass import Helper
Ich möchte so etwas:
lib/
__init__.py #Helper defined in this file
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib import Helper
Ist es möglich oder muss ich die Klasse in eine andere Datei trennen?
BEARBEITEN
OK, wenn ich lib aus einem anderen Skript importiere, kann ich auf die Helper-Klasse zugreifen. Wie kann ich über settings.py auf die Helper-Klasse zugreifen?
Das Beispiel hier beschreibt Intra-Package-Referenzen. Ich zitiere "Submodule müssen sich oft aufeinander beziehen". In meinem Fall benötigt lib.settings.py den Helper und lib.foo.someobject Zugriff auf Helper. Wo soll ich also die Helper-Klasse definieren?