Я работаю над проектом на Python, и я стараюсь придерживаться несколько строгой модели MVC для практики. Моя идея состояла в том, чтобы разделить вещи на пакеты с именами model
, view
и controller
, плюс есть классы Model
, View
и Controller
для каждого. Каждый пакет будет иметь поддерживающие файлы для каждой части.Разбиение классов MVC в Python
Моя проблема заключается в том, что я хочу, чтобы иметь возможность использовать их люблю:
from controller import Controller
, а затем в файле с классом контроллера я могу:
from controller.someclass import SomeClass
Но если я ставлю их в пакеты с тем же именем, я получаю проблемы. Я дочитал о том, как работают модули, и понял, что мне нужно, чтобы назвать их controller/__init__.py
, model/__init__.py
и view/__init__.py
, но это кажется странным, чтобы поместить их в этот файл, и это отчасти раздражает, что все они появляются Gedit как __init__.py
Есть ли лучший способ сделать это? Правильно ли я это делаю?
Я думаю, что вам не хватает точек модулей python. Вам нужны занятия? Почему у вас нет логики в вашем пакете контроллера, поэтому вы можете просто «импортировать контроллер», а затем «controller.whatever()» – Falmarri
Проблема будет такой же, если бы я делал это именно так. Я все равно собирал логику в файлах с именем '__init __. Py'. –
Да, вот как работает python. – Falmarri