Estou tentando organizar alguns módulos para meu próprio uso. Eu tenho algo assim:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
Em lib/__init__.py
, desejo definir algumas classes a serem usadas se eu importar lib. No entanto, não consigo descobrir isso sem separar as classes em arquivos e importá-los __init__.py
.
Em vez de dizer:
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
Eu quero algo assim:
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
É possível ou tenho que separar a classe em outro arquivo?
EDITAR
OK, se eu importar lib de outro script, posso acessar a classe Helper. Como posso acessar a classe Helper em settings.py?
O exemplo aqui descreve referências dentro do pacote. Cito "os submódulos geralmente precisam se referir uns aos outros". No meu caso, o lib.settings.py precisa do Helper e lib.foo.someobject precisa de acesso ao Helper, então onde devo definir a classe Helper?