Python Getattr on self不工作,它应该工作吗?

Python Getattr on self不工作,它应该工作吗?,python,object,wxpython,getattr,Python,Object,Wxpython,Getattr,我在一个对象中有一个非常简单的函数: def ctrl_btn_press(self, event): print event.GetEventObject().GetName() getattr(self, event.GetEventObject().GetName()) 事件是wxpython事件。这些名称位于配置文件的列表中,我的gui中的按钮被设置为该事件处理程序对象中处理该按钮按下的函数的名称 打印工作,它打印,例如,“alm_开关_离开”。但是,函数调用getat

我在一个对象中有一个非常简单的函数:

def ctrl_btn_press(self, event):
    print event.GetEventObject().GetName()
    getattr(self, event.GetEventObject().GetName())
事件是wxpython事件。这些名称位于配置文件的列表中,我的gui中的按钮被设置为该事件处理程序对象中处理该按钮按下的函数的名称

打印工作,它打印,例如,“alm_开关_离开”。但是,函数调用getattr不起作用。这是它应该调用的函数(使用打印函数来测试代码是否“到达那里”),但没有打印任何内容:

def alm_switch_away(self):
    print "HERE!"
你能看出我做错了什么吗

如果by不起作用,您的意思是我得到了一个
AttributeError
,那么您需要查看字符串表示输出,以发现事件名称中的任何不可打印字符:

print repr(event.GetEventObject().GetName())
如果你的意思是什么都没有发生,那是因为你从来没有用你查过的方法做过任何事情。您没有调用该方法。在调用
getattr()
之后添加
()

event_method = getattr(self, event.GetEventObject().GetName())
event_method()
或组合成一行:

getattr(self, event.GetEventObject().GetName())()
如果by不起作用,您的意思是我得到了一个
AttributeError
,那么您需要查看字符串表示输出,以发现事件名称中的任何不可打印字符:

print repr(event.GetEventObject().GetName())
如果你的意思是什么都没有发生,那是因为你从来没有用你查过的方法做过任何事情。您没有调用该方法。在调用
getattr()
之后添加
()

event_method = getattr(self, event.GetEventObject().GetName())
event_method()
或组合成一行:

getattr(self, event.GetEventObject().GetName())()

定义不起作用。
打印repr(event.GetEventObject().GetName())
产生什么?Define不起作用。
print repr(event.GetEventObject().GetName())
产生了什么?是的,就是这样,我没有调用该方法。我以为getattr自己会叫它的。谢谢是的,就是这样,我没有调用这个方法。我以为getattr自己会叫它的。谢谢