Будет ли плохой практикой использовать атрибут title виджета для ссылки на него?
Например, у меня есть несколько пользовательских radioBoxCtrls
на panel
Мне только нужно получить / установить все значения одновременно
поэтому класс контейнера (панель) для объектов radioBoxCtrls
имеет следующие методы
get_options()
set_options()
Для установки параметров для всех radioBoxCtrls
a dictionary
передается методу set_options()
.
Каждая пара key
, value
в словаре представляет собой title
из radioBoxCtrl
и title
из button
в radioBoxCtrl
, который должен быть установлен
def set_options(self, options={}):
"""
This method sets which radio button is selected
on each RadioBoxCtrl object
@param options: A dictionary
Each key is the title of a RadioBoxCtrl
each keys value is the button on the radio box that is to be selected
"""
for option_box in self.option_boxes:
if option_box.title in options.keys()
option_box.set_selected_button(options[option_box.title])
def get_options(self):
"""
This method returns a dictionary of the selected options
Each key is the title of a RadioBoxCtrl object
and each keys value is the name of the button selected on the radio box
"""
options = defaultdict(list)
for option_box in self.option_boxes:
options[option_box.title]=option_box.get_selected_btn()
return options
Так (в попытке очистить), когда я вызываю метод set из моего контроллера
Я перехожу в словаре так:
options = {"Name of radioBoxCtrl": "Option 2", ... }
self.gui.optionsPanel.set_options(options)
Какого черта ты хочешь это сделать? (спросите вы)
Краткий ответ : mvc
Я хочу создать подходящий слой абстракции. Все, что нужно знать моему контроллеру
в отношении этих опций следует учитывать, как заставить их передать модель, когда требуется выполнить некоторую обработку, и как установить их при загрузке файла конфигурации ...
Я думал, что было бы проще, если бы я мог просто вызвать один метод для установки и наоборот -но я сейчас не уверен!
Я понимаю, что это, вероятно, больше вопрос о приемлемости ссылки на объекты с помощью некоторого строкового атрибута, которым они обладают, который в моем случае просто является заголовком ... так что не стесняйтесь ответить на него соответствующим образом ...
Пожалуйста, не стесняйтесь улучшать заголовок вопроса (я не совсем уверен, как его сформулировать) и добавлять теги.
Спасибо