У меня есть wxPython приложение с различными классами GUI в их собственных модулях в названном пакете gui
. С этой установкой, импортируя главное окно был бы сделан следующим образом:
from gui.mainwindow import MainWindow
Это выглядело грязным мне так, я изменился
файл для __init__.py
gui
пакет для импорта класса непосредственно в пространство имен пакета:
from mainwindow import MainWindow
Это позволяет мне импортировать главное окно как это:
from gui import MainWindow
Это выглядит лучше мне эстетически, и я думаю, что это также более тесно представляет то, что я делаю (импорт MainWindow
класс от gui
"пространство имен"). Причина я сделал gui
пакет состоял в том, чтобы держать весь материал GUI вместе. Я, возможно, столь же легко сделал сингл gui
модуль и наполненный все классы GUI в нем, но я думаю, что это было бы неуправляемо. Пакет теперь, кажется, работает как модуль, но позволяет мне разделять классы на их собственные модули (наряду с функциями помощника, и т.д.).
Эта целая вещь кажется мне несколько мелкий, я просто думал, что брошу ее там для наблюдения, какие другие думают об идее.
Что ж, это довольно распространенный шаблон, и я думаю, что это также причина, по которой вы можете включать вещи внутрь __ init __. Py
файлы.
В качестве подтверждения просто нажмите grep для операторов импорта в файлах __ init __. Py
, и вы увидите, что он широко используется как в стандартной библиотеке, так и в обычных пакетах.