Я пытаюсь определить функцию с именем переменной.
Имена извлекаются из базы данных.Для каждого имени я хочу определить кнопку и иметь отдельную обработку:
title=['BNL','CE']
for i in range(0,len(title)):
panelvpu.add(Button(title[i]))
for i in range(0,len(title)):
eval('def onButtonClick'+title[i]+'(self, event):')
eval(' Window.alert("Yes")')
Определение кнопки в порядке, но обработка события в определенной функции дает ошибку
im1 SyntaxError: at index 4 in "def onMenu1Item1(self):
Window.alert("Item 1 selected")": expected ';', got 'onMenu1Item1'
После обратной связи я изменил это на
title=['BNL','CE']
for t in title : panelvpu.add(Button(t))
for t in title:
def_code = "print t"
exec(def_code)
Просто чтобы получить ощущение;под питоном это работает нормально.Но я использую пижаму, и последний код выдает ошибку, заявляющую
im1 TypeError: iter is undefined
Похоже, что пижама еще не поддерживает eval () и exec ().
Ричард