В последнее время я пишу совсем немного кода Python, и я изо всех сил пытаюсь понять, как правильно структурировать мой модуль, чтобы обеспечить простой импорт.Как структурировать модули, чтобы избежать таких вещей, как «import module.module.module»
У меня есть модуль структурирована следующим образом:
/module
/submod_1
submod_1_class.py
/submod_2
submod_2_class.py
но я нахожу это невероятно раздражает придется импортировать класс в submod_1_class.py
с:
from module.submod_1.submod_1_class import class
То, что я предпочел бы, чтобы иметь возможность тип:
from module import class
Я знаю, что должен быть способ сделать это повторно элегантный, и я просмотрел папку site-packages
и просмотрел популярные модули, как numpy
, но я не мог понять, как, например:
import numpy
a = numpy.array([1,2,3,4,5])
может быть использован при определении numpy
массива объекты находятся глубоко внутри нескольких подпапок пакета numpy
.
Добавьте некоторые '__init __. Py' файлы, чтобы определить, что должно быть доступно из каждого модуля. Например, если у вас есть один в '/ module', который включает' from submod_1.submod_1_class import class', то извне модуль вы * можете * 'из класса импорта модуля. Например, чтобы придерживаться 'numpy', [эта строка] (https://github.com/numpy/numpy/blob/master/numpy/__init__.py#L192) означает, что все, что определено в [этом файле] (https : //github.com/numpy/numpy/blob/master/numpy/core/__init__.py) можно импортировать прямо из 'numpy'. – jonrsharpe
@jonrsharpe Пожалуйста, положите это в ответ, чтобы вы могли получить очки за верхнюю ставку, которую я хочу вам дать. – Shashank