代码:
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()
当我运行测试时,两个打印语句都给我" True" if条件不执行。是什么给了什么?
答案 0 :(得分:5)
你错过了一对括号:
if keycode == wx.WXK_ESCAPE and event.GetEventObject() in ESC_list:
# ^^ HERE
您当前的代码在语法上是有效的,但具有不同的语义。它检查ESC_list
中是否存在函数对象本身 - 而不是调用函数的结果。