Вот так выглядит мой каталог:
my_library
├── my_module
│ ├── __init__.py
│ ├── core.py
│ ├── helpers.py
│ └── interface.py
├── __init__.py
├── setup.py
└── README.md
core.py
содержит основной класс Generator
, interface.py
содержит набор переменных и функций, которые пользователь хотел бы использовать вместе скласс (для установки параметров и т. д.) и, наконец, helpers.py
содержит набор функций, используемых core.py
, которые не интересуют пользователя.
Я пытаюсь использовать вспомогательные функции, определенные в helper.py
(которыйв свою очередь используйте параметры из interface.py
) в core.py
.Мой вопрос: каков оптимальный способ сделать импорт в файлах из трех модулей и в __init__.py
?Моя цель состоит в том, чтобы, когда пользователь сделает my_module.
, он сможет получить доступ к классу Generator
и всему, что находится в файле interface.py
, но не к тому, что находится в helpers.py
(по крайней мере, не напрямую, ему придется перейти еще на одинуровень вниз).
Мои my_module
__init__.py
в настоящее время выглядят так:
from .core import Generator
from .interface import *
from .base_functions import *
core.py
и helper.py
оба имеют import my_module
для helper.py
использовать то, что определено в interface.py
и core.py
, чтобы использовать то, что определено в обоих остальных.
То, что у меня есть в настоящее время, выполняет работу в определенной степени, но я не уверен, что это оптимально, особенно япрочитайте, что использование звездочки (*
) для импорта не очень хорошая идея.