用装饰器类装饰的方法没有冻结“self”参数
发布时间:2020-05-27 23:55:47 所属栏目:Python 来源:互联网
导读:我有一个装饰器声明为一个类:class predicated(object): def __init__(self, fn): self.fn = fn self.fpred = lambda *args, **kwargs: True def predicate(self, predicate):
|
我有一个装饰器声明为一个类:
…当我用它来包装类中的方法时,调用该方法似乎并没有将对象的实例设置为第一个参数.虽然这种行为并不完全出乎意料,但当方法成为实例方法时,如何让自我被冻结? 简化示例:
foo的预期实例,而是得到一个错误,说0参数被传递. 最佳答案 想出来 – 需要定义一个__get__方法,以便像这样创建一个MethodType绑定:
在冻结self参数的对象上调用方法时创建一个MethodType对象. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
