[英]Trying to understand python decorators
我正在尝试了解Python装饰器,但仍然感到困惑。 我正在尝试解决以下错误:“创建一个函数以合并两个数字,然后创建一个将结果加倍的装饰器。”
我的代码:
x=6
y=5
u=None
def multi(func):
def adding(*args):
print("Welcome func {}".format(func.__name__))
func(*args)
return adding
@multi
def tyu(x,y):
print("=> ", x+y)
u = x+y
return u
u = tyu(x,y)
@multi
def dss(u):
dd=u*2
return dd
yy=dss(u)
print("** ", yy)
您几乎拥有它。 您只需要在装饰器中返回func
并将结果乘以2。
def multi(func):
def adding(*args):
print("Welcome func {}".format(func.__name__))
return 2 * func(*args)
return adding
@multi
def add(a, b):
return a + b
例:
In [11]: def multi(func):
...: def adding(*args):
...: print("Welcome func {}".format(func.__name__))
...: return 2 * func(*args)
...: return adding
...:
...: @multi
...: def add(a, b):
...: return a + b
...:
In [12]: add(3, 4)
Welcome func add
Out[12]: 14
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.