Python 连接可调用到类 问题

Python 连接可调用到类 问题,python,python-3.x,Python,Python 3.x,我无法将一个可调用类绑定到另一个类(比如,MyClass),就像将函数绑定到MyClass一样。是否有人知道如何手动将可调用项绑定到类,以便MyClass的实例自动将self作为第一个参数传递给可调用项 细节 我有一个函数修饰符@logger,它将函数转换为一个类,并存储有关其用法的元数据(即函数->LoggedFunction)。这与函数配合得很好,并允许进行一些强大的调试。但是,当以相同的方式装饰类的方法时,由于LoggedFunction是一个冒充函数的类,因此它不会像函数那样自动绑定 代

我无法将一个可调用类绑定到另一个类(比如,
MyClass
),就像将函数绑定到
MyClass
一样。是否有人知道如何手动将可调用项绑定到类,以便
MyClass
的实例自动将
self
作为第一个参数传递给可调用项

细节 我有一个函数修饰符
@logger
,它将函数转换为一个类,并存储有关其用法的元数据(即
函数
->
LoggedFunction
)。这与函数配合得很好,并允许进行一些强大的调试。但是,当以相同的方式装饰类的方法时,由于
LoggedFunction
是一个冒充函数的类,因此它不会像函数那样自动绑定

代码 [1]中的
:#func是一个可调用函数,我们希望将其用作类中的方法
... def func(*args,**kwargs):
...     打印(args、kwargs)
... 
... # Func实例是可调用的,我们希望它们的行为与'Func'相同`
... 类Func():
...     定义调用(self,*args,**kwargs):
...         打印(args、kwargs)
... 
... # 将两者都添加到MyClass
... 类MyClass():
...     func=func
...     Func=Func()
... 
... myinstance=MyClass()
[2]中的func('arg',kwarg='kwarg')
... # 函数打印其所有输入
Out[2]:('arg',){'kwarg':'kwarg'}
[3]中的Func('arg',kwarg='kwarg')
... # 可调用类镜像函数“func”的性能。。。
Out[3]:('arg',){'kwarg':'kwarg'}
[4]中的myinstance.func('arg',kwarg='kwarg')
... # 函数被绑定到类,并通过'self'传递`
Out[5]:(,'arg'){'kwarg':'kwarg'}
[5]中的myinstance.Func('arg',kwarg='kwarg')
... # callable未绑定到类,也未通过“self”`
Out[5]:('arg',){'kwarg':'kwarg'}

您需要使用描述符协议:谢谢,这正是我需要的。如果你发布一个我可以给你的答案,你需要使用描述符协议:谢谢,这就是我需要的。如果你作为一个答案后,我可以给你信用