[英]Where I am making a mistake with this decorator code?
当我们有不同的参数时,我试图理解 python 中装饰器的概念(实际上我不确定如何将参数传递给装饰器)。 我写了下面的小而简单的代码,但我无法运行它:
def advance(*arg, function):
result = a * function(b, c)
print(result)
@advance
def Sum1(b, c):
return b + c
print(Sum1(1, 2, 3))
运行代码时,我得到TypeError: advance() missing 1 required keyword-only argument: 'function'.
装饰器必须返回一个新函数,所以你想要这样的东西:
def advance(function):
def wrapped(a, b, c):
return a * function(b, c)
return wrapped
@advance
def Sum1(b, c):
return b + c
print(Sum1(10, 2, 3))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.