【发布时间】:2020-04-02 03:17:25
【问题描述】:
我一直在尝试理解这个类装饰器:
class MyClassDecorator:
def __init__(self, *a, **kw):
self.conf_args = a
self.conf_kw = kw
def __call__(self, func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
@MyClassDecorator('arg1')
def mysum(x,y):
return x+y
修饰后 mysum 通过以下方式成为 MyDecoratorClass 的对象:
mysum = MyDecorator('arg1')(mysum)
那么它如何接受参数,因为 mysum 按照上述协议变为 call 并且它只接受 func 本身的一个参数,即传递给 mysum 的变量如何传递给调用函数?请赐教,这方面的资料不足。
【问题讨论】:
标签: python-2.7 python-decorators