我正在尝试了解Python decorators,但我仍感到困惑。我正在尝试解决以下错误: “创建一个函数来组合两个数字,然后创建一个装饰器,使结果加倍。”
我的代码:
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)
答案 0 :(得分:1)
你几乎拥有它。您只需要在装饰器内返回'}'
并将结果乘以2.
func
示例:
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