Estoy intentando organizar algunos módulos para mi propio uso. Tengo algo como esto:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
En lib/__init__.py
, quiero definir algunas clases que se usarán si importo lib. Sin embargo, parece que no puedo resolverlo sin separar las clases en archivos e importarlos __init__.py
.
En lugar de decir:
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
Quiero algo como esto:
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
¿Es posible o tengo que separar la clase en otro archivo?
EDITAR
OK, si importo lib desde otro script, puedo acceder a la clase Helper. ¿Cómo puedo acceder a la clase Helper desde settings.py?
El ejemplo aquí describe las referencias dentro del paquete. Cito "los submódulos a menudo necesitan referirse entre sí". En mi caso, lib.settings.py necesita el Helper y lib.foo.someobject necesita acceso al Helper, entonces, ¿dónde debería definir la clase Helper?