我尝试用变量名定义一个函数。
从数据库中检索名称。对于我想定义一个按钮并进行单独处理的每个名称:
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)
只是为了感受;在 python 下这工作正常。但是我使用睡衣,最后一个代码确实引发了错误说明
im1 TypeError: iter is undefined
看来睡衣还不支持 eval() 和 exec()。
理查德