私は3つの間で混乱しています。 adder
が閉鎖され、ここでクローズ、パーシャル、デコレータ
def add_nums(one):
def adder(two):
return one+two
return adder
a_10 = add_nums(10)
print a_10(5)
15
:私は囲みスコープを形成
例のクロージャは、別の関数によって返さ関数であり、ローカル変数へのアクセスを持っていることを理解しています。
しかし、これは二つの違いは何ですか?またpartial
from functools import partial
a_10 = partial(add_nums, 10)
print a_10()(5)
15
の例ではありませんか
また、デコレータは機能に機能を追加するために使用されます。
3つの違いは何ですか?
デコレータは、関数を受け取り関数を返す単なる関数です。これはしばしばネストされた関数を含んでいるので、内部関数が環境をキャプチャするクロージャを介して引数関数にアクセスするのが一般的ですが、値を明示的に渡す部分的な方法で実装することができます。あなたが知りたいと思うものは明らかではありません。 – jonrsharpe