Я пытаюсь организовать некоторые модули для собственного использования. У меня есть что-то вроде этого:
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
Возможно ли это, или мне нужно разделить класс на другой файл?
EDIT
ОК, если я импортирую lib из другого скрипта, я могу получить доступ к классу Helper. Как я могу получить доступ к классу Helper из settings.py?
Пример здесь описывает ссылки внутри пакета. Я цитирую "субмодули часто должны ссылаться друг на друга". В моем случае lib.settings.py нужен Helper, а lib.foo.someobject нужен доступ к Helper, так где мне определить класс Helper?