関数式プログラミングと変数の役割ドメイン
1408 ワード
Pythonは局所変数xの検索に失敗し,別の関数に属する外層作用領域で検索する.変数xは関数outerのローカル変数ですが、関数innerには外層役割ドメインへのアクセス権(少なくとも読み取りと変更の権限)があります.
変数の役割ドメイン:
関数プログラミング:
関数を変数として呼び出し、()で呼び出す.
クローズ:
閉パッケージとは、JavaScriptでは、内部関数が外部関数で宣言されたパラメータと変数に常にアクセスでき、その外部関数が返された(寿命が終了した)後でも使用できます.閉パッケージは、通常、内部変数を作成するために使用され、これらの変数は外部で勝手に変更できないとともに、指定した関数インタフェースで操作することができます.
>>> def o():
... x=1
... def i():
... print(x)
... i()
>>> o()
1
変数の役割ドメイン:
>>> a="xss"
>>> def foo():
... print(a)
>>> foo()
xss
>>> def foo():
... print(locals())
... print(globals())
>>> foo()
{}
{'foo': , '__spec__': None, 'a': 'xss', '__package__': None, '__name__': '__main__', '__doc__': None, '__loader__': , '__builtins__': }
関数プログラミング:
関数を変数として呼び出し、()で呼び出す.
>>> def add(x, y):
... return x + y
>>> def apply(func, x, y): # 1
... return func(x, y) # 2
>>> apply(add, 2, 1) # 3
3
>>> def outer():
··· print("xss")
... def inner():
... print "Inside inner"
... return inner # 1
>>> foo = outer()
xss
>>> foo()
Inside inner
クローズ:
閉パッケージとは、JavaScriptでは、内部関数が外部関数で宣言されたパラメータと変数に常にアクセスでき、その外部関数が返された(寿命が終了した)後でも使用できます.閉パッケージは、通常、内部変数を作成するために使用され、これらの変数は外部で勝手に変更できないとともに、指定した関数インタフェースで操作することができます.