Вопрос № 177444: Здравствуйте, уважаемые эксперты! Подключаю модуль преобразующий число с 10й в 16ю систему счислений. После компиляции выдается ошибка: n=pole.get() NameError: global name 'pole' is not defined ------------------------- Вот...
Вопрос № 177444:
Здравствуйте, уважаемые эксперты! Подключаю модуль преобразующий число с 10й в 16ю систему счислений. После компиляции выдается ошибка: n=pole.get() NameError: global name 'pole' is not defined ------------------------- Вот часть основного кода: ... view=Menu(m) m.add_cascade(label=u"Вид",menu=view) view.add_command(label=u"Шестнадцатеричный",command=Hex) ... ...
global pole pole=Entry(root,width=30,bd=5,font="12") # Поле
вывода чисел ...
Отправлен: 24.03.2010, 18:11
Вопрос задал: WWWorm, Посетитель
Всего ответов: 1 Страница вопроса »
Отвечает Хватов Сергей, Практикант :
Здравствуйте, WWWorm. global - это директива для компилятора, и делает объект глобальным лишь в пределах одного блока. Применять её вне какой-либо функции бессмысленно.
Добраться до объекта из основного модуля вообще-то можно: __builtin__.__dict__['pole'].get(), но это уже похоже на извращение И во всяком случае, на ошибку в дизайне своей программы. Лучше определять get в модуле (вероятно как метод какого-либо класса по канонам ООП)
и потом импортировать в тех модулях, где он используется.
Ответ отправил: Хватов Сергей, Практикант
Ответ отправлен: 24.03.2010, 18:28
Номер ответа: 260338
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260338
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.