我有一段代码充当按钮的侦听器,并评估是否填写了此按钮上方的某些字段:
def goListener(self):
if all( [self.nme.get() != "", self.dsc.get() != "", self.imp.get != ""] ):
name = self.nme.get()
desc = self.dsc.get()
while True:
try:
imp = int(self.imp.get())
break
except:
imp = int(self.imp.get())
当我运行这个程序时填写了不同的字段或以其他方式运行该程序时,它会正确并产生错误消息,我要求它对每个组合都要求它,除了填写 nme 和 dsc 但未填写 imp 的地方,这会产生错误消息:
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1442, in __call__
return self.func(*args)
File "C:\Python33\todo.py", line 68, in goListener
imp = int(self.imp.get())
ValueError: invalid literal for int() with base 10: ''
顺便说一下,这是运行 except 块,它不应该。这是评估的问题,还是我在这里遗漏了什么?