python类装饰程序错误

python类装饰程序错误,python,Python,在下面的示例中,当应用decorator时,我得到一个错误,即TypeError:rt()正好接受2个参数(给定1个),如何克服这个问题。函数decorator也是如此,因为父类的缘故,所以他会这样做。如何解决这个问题 class applyfilter(object): def __init__(self,f): self.f=f def __call__(self,*args): self.f(*args) 或 我认为您希望在函数调用中使用*运

在下面的示例中,当应用decorator时,我得到一个错误,即
TypeError:rt()正好接受2个参数(给定1个)
,如何克服这个问题。函数decorator也是如此,因为父类的缘故,所以他会这样做。如何解决这个问题

class applyfilter(object):
    def __init__(self,f):
       self.f=f
    def __call__(self,*args):
       self.f(*args) 


我认为您希望在函数调用中使用
*
运算符,如下所示:

def rt1(*args):
    print f.__name__
    print args
    return f(*args)
这样,
rt1
的参数将打包到
args
,然后在调用
f(*args)
时解包


参考资料:

您没有将任何
数据
传递给
rt()
。请在问题中更正您的更正仍然缺少
def rt1(*args)上的星号
def rt1(*args):
    print f.__name__
    print args
    return f(*args)