Pythonでの遅延バインディングの設定方法は?
Pythonにおいて、ディレイド・バインディングとは、クロージャー内で外部変数を使用する際に、変数の値が関数が呼び出された時に決定される点を指します。このため、関数が定義された時点ではなく、呼び出し時に値が決定されます。ディレイド・バインディングを設定するには、nonlocalキーワードを使用します。
以下は例です:
def outer_function():
x = 10
def inner_function():
nonlocal x
x += 1
print(x)
return inner_function
closure = outer_function()
closure() # 输出 11
closure() # 输出 12
上記の例では、outer_functionはinner_functionというクロージャを返し、inner_functionではnonlocalキーワードを使用してxが外部のouter_function内の変数であることを宣言しています。クロージャを呼び出すたびに、xの値が遅延バインディングされ、1が増加します。