为什么我的<a> and <b> if conditional not execture when a and b are both True?</b></a>

时间:2012-02-28 08:20:07

标签: python if-statement wxpython wxwidgets

编辑:这是我的错字。由于某种原因,我无法在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()

当我运行测试时,两个打印语句都给我&#34; True&#34; if条件不执行。是什么给了什么?

1 个答案:

答案 0 :(得分:5)

你错过了一对括号:

if keycode == wx.WXK_ESCAPE and event.GetEventObject() in ESC_list:
#                                                   ^^ HERE

您当前的代码在语法上是有效的,但具有不同的语义。它检查ESC_list中是否存在函数对象本身 - 而不是调用函数的结果。