Я пытаюсь организовать некоторые модули для собственного использования. У меня есть что-то вроде этого:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
В lib/__init__.py
, я хочу определить некоторые классы, которые будут использоваться, если я импортирую lib. Однако я не могу понять, не разделяя классы на файлы и импортируя их в __init__.py
.
Вместо того, чтобы сказать:
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
Мне нужно что-то вроде этого:
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
Возможно ли это, или мне нужно отделить класс от другого файла?
ИЗМЕНИТЬ
ОК, если я импортирую lib из другого script, я могу получить доступ к классу Helper. Как я могу получить доступ к классу Helper из settings.py?
Пример здесь описывает ссылки внутри пакета. Я цитирую: "подмодулям часто нужно ссылаться друг на друга". В моем случае lib.settings.py необходимо, чтобы Helper и lib.foo.someobject нуждались в доступе к Helper, поэтому где я должен определить класс Helper?