[英]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.