Próbuję zorganizować niektóre moduły na własny użytek. Mam coś takiego:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
W programie lib/__init__.py
chcę zdefiniować klasy, które będą używane podczas importowania lib. Jednak wydaje mi się, że nie mogę tego rozgryźć bez rozdzielenia klas na pliki i zaimportowania ich do formatu __init__.py
.
Zamiast mówić:
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
Chcę coś takiego:
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
Czy to możliwe, czy muszę rozdzielić klasę na inny plik?
EDYTOWAĆ
OK, jeśli zaimportuję lib z innego skryptu, mogę uzyskać dostęp do klasy pomocnika. Jak mogę uzyskać dostęp do klasy pomocnika z settings.py?
Przykładem tutaj opisuje Referencje wewnątrz opakowania. Cytuję „podmoduły często muszą odnosić się do siebie”. W moim przypadku lib.settings.py potrzebuje Helpera, a lib.foo.someobject potrzebuje dostępu do Helpera, więc gdzie powinienem zdefiniować klasę Helper?