J'essaye d'organiser certains modules pour mon propre usage. J'ai quelque chose comme ça:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
Dans lib/__init__.py
, je souhaite définir certaines classes à utiliser si j'importe lib. Cependant, je n'arrive pas à le comprendre sans séparer les classes en fichiers et les importer dans __init__.py
.
Plutôt que de dire:
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
Je veux quelque chose comme ça:
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
Est-ce possible ou dois-je séparer la classe dans un autre fichier?
ÉDITER
OK, si j'importe la lib depuis un autre script, je peux accéder à la classe Helper. Comment puis-je accéder à la classe Helper à partir de settings.py?
L'exemple décrit ici décrit les références intra-package. Je cite "les sous-modules doivent souvent se référer les uns aux autres". Dans mon cas, lib.settings.py a besoin du Helper et lib.foo.someobject doit avoir accès à Helper, alors où dois-je définir la classe Helper?