如何使用对象/方法pai的回调函数

2024-09-23 14:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的方法,它接受一个函数,以后再调用它:

def SimpleFunc(parm1):
    print(parm1)

class CallMe:
    def __init__(self, func):
        self.func = func

    def Call(self, parm):
        self.func(parm)

caller = CallMe(SimpleFunc)
caller.Call("Hallo")

很好用!在

但我想使用一个类方法,并想将已定义对象上的方法调用为回调:

^{pr2}$

如何将对象/方法对绑定到可调用对象?在

注意:来自CallMe的代码不在我的控制之下。它来自一个需要处理函数的web服务器。在


Tags: 对象方法函数selfinitdefcallclass
1条回答
网友
1楼 · 发布于 2024-09-23 14:30:37

只需将方法对象传递给类:

called = CallMe(obj.Func)

稍微扩展一下,实例方法实际上只是原始的类函数:

^{pr2}$

在访问实例(obj.Func)期间,通过一个描述符(__get__)对其进行转换,该描述符将self(实例)附加到它们:

>>> obj.Func.__self__
<__main__.WithClassMethod at 0x7fbe740ce588>

所以你几乎可以用方法做任何你想做的事情。在

相关问题 更多 >