Как сделать импорт между файлами в модуле python, используя файл __init__.py? - PullRequest
1 голос
/ 30 июня 2019

Вот так выглядит мой каталог:

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, чтобы использовать то, что определено в обоих остальных.

То, что у меня есть в настоящее время, выполняет работу в определенной степени, но я не уверен, что это оптимально, особенно япрочитайте, что использование звездочки (*) для импорта не очень хорошая идея.

...