tal*_*ees 2 python wxwidgets wxpython if-statement
编辑:这是我的错字.出于某种原因,我无法在GetEventObject之后看到缺少parantheses.
码:
def onKeyDown(self, event):
ESC_list = [self.topic_control,self.search_control]
print event.GetEventObject() in ESC_list
keycode = event.GetKeyCode()
print keycode == wx.WXK_ESCAPE
if keycode == wx.WXK_ESCAPE and event.GetEventObject in ESC_list:
print "fire"
self.onExit(event)
event.Skip()
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,两个print语句都给我"True",if条件不执行.是什么赋予了?
你错过了一对括号:
if keycode == wx.WXK_ESCAPE and event.GetEventObject() in ESC_list:
# ^^ HERE
Run Code Online (Sandbox Code Playgroud)
您当前的代码在语法上是有效的,但具有不同的语义.它检查函数对象本身 - 而不是调用函数的结果 - 是否存在ESC_list.