Форум сайта python.su
(не уверен, что правильно назвал тему )
есть экземпляр класса (диалогового окна ), созданный командой
inputDialog = employ_request_wind()
в частности в данном случае команда
print('inputDialog:', type(inputDialog), inputDialog)
выведет:
inputDialog:
<class ‘__main__.employ_request_wind’>
<__main__.employ_request_wind(0x1cf6f53c8b0, name=“Dialog”) at 0x000001CF6CE41C80>
нужно создать ссылку на виджет одного поля, содержащего в данном классе окна
например - поле employ
синтаксически (“ручной код ”) будет просто через точку
inputDialog.employ
тогда
print('inputDialog.employ: ‘, type(inputDialog.employ), inputDialog.employ)
inputDialog1.employ:
<class ’PySide6.QtWidgets.QComboBox'>
<PySide6.QtWidgets.QComboBox(0x1cf6f53bff0, name=“employ”) at 0x000001CF6CE7A600>
как построить программно это выражение , когда поле содержится переменной?
т.е.
если руками, то inputDialog.employ
а как это сделать через переменную ?
если экземпляр класса в inputDialog , а поле в переменной field = ‘employ’ - > как написать выражение, чтобы результат был аналогичным записи inputDialog.employ ?
Офлайн
Не нужно делать таких вещей, это ведёт к сильной связанности между частями программы. Но ты же всё равно не будешь меня слушать и продолжишь заниматься глупостями, по этому вот так:
var = "employ" employ = getattr(inputDialog, var)
Онлайн
спасибо, попробую!
насчет глупостей - не спорю, этот способ взял из учебных примеров, там такого много мусолится ..
не дадите ссылку на примеры, где есть более традиционное решение ?
Офлайн
Нужно не смотреть примеры, а изучать ООП и практиковаться. Без этого нормальным разработчиков мне стать. Почитай книгу Грэди Буч “Объектно-ориентированный анализ и проектирование с примерами приложений” она наиболее адекватна. Там примеры на C++ на это внимание не обращай тебе они не нужны.
Онлайн
неожиданный совет, думал, что эту книгу давно можно выбросить
Офлайн
Вот когда ООП устареет, тогда и можно будет её выбросить. А сейчас она более чем актуальна.
Онлайн