2017-08-05 14 views
0

私はPython decoratorsについて学んでいますが、まだ混乱しています。次のエラーを解決しようとしています。 "2つの数値を結合し、結果を倍にするデコレータを作成する関数を作成します。"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) 

答えて

1

あなたはほとんどそれを持っています。時間は、ほとんど私はそれを理解しようとする2日間を過ごし、あなたの助けをありがとう

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 
+0

:あなただけの実施例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 

してデコレータ内funcを返し、結果を乗算する必要がありますクラスの装飾を学ぶ。再びThx – 2013CH

関連する問題