Пакеты Python - импорт по классам, а не файл
Скажем, у меня есть следующая структура файла:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
Если app/controllerlers/project.py определяет класс Project, app.py будет импортировать его следующим образом:
from app.controllers.project import Project
Я бы просто хотел:
from app.controllers import Project
Как это сделать?
Ответы
Ответ 1
Вам нужно поставить
from project import Project
в controllers/__init__.py
.
Обратите внимание, что когда Абсолютный импорт станет по умолчанию (Python 2.7?), вы захотите добавить точку перед именем модуля (чтобы избежать столкновений с моделью верхнего уровня с именем project
), т.е.
from .project import Project