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'}
您需要使用描述符协议:谢谢,这正是我需要的。如果你发布一个我可以给你的答案,你需要使用描述符协议:谢谢,这就是我需要的。如果你作为一个答案后,我可以给你信用