Я пишу программу на Python с графическим интерфейсом, созданным с помощью модуля Tkinter. Я использую класс для определения графического интерфейса, поскольку он упрощает передачу команд кнопкам и упрощает понимание всего этого.
Фактическая инициализация моего графического интерфейса занимает около 150 строк кода. Чтобы упростить понимание, я написал функцию __ init __
следующим образом:
def __init__(self, root):
self.root = root
self._init_menu()
self._init_connectbar()
self._init_usertree()
self._init_remotetree()
self._init_bottom()
где _init_menu ()
, _init_connectbar ()
, и так далее делают всю работу по инициализации. Это упрощает отслеживание моего кода и не позволяет __ init __
становиться слишком большим.
Однако это создает проблемы с областью видимости. Поскольку виджет Entry, который я определил в _init_connectbar ()
, находится в области действия функции и не является атрибутом класса, я не могу ссылаться на него в других методах этого класса.
Я могу сделать это проблемы уйдут, выполнив большую часть инициализации в __ init __
, но я потеряю абстракцию, полученную с помощью моего первого метода.
Следует ли мне расширить __ init __
или найти другой способ чтобы поместить виджеты в область действия класса?