Python のクロージャ
クロージャは Python のエレガントで強力な概念であり、関数が外側のスコープから変数へのアクセスを保持できるようにします。この機能は、状態を保持した関数を作成する機能を導入し、より多用途で効率的なコードを実現します。
本質的に、クロージャは入れ子になった関数であり、それを囲んでいるスコープで定義された変数にアクセスできます。関数の実行が終了しました。これは、外側の関数の変数をキャプチャする「クロージャ オブジェクト」を作成することによって実現されます。
クロージャを使用する理由
クロージャには、次のような利点があります。
クロージャの作成方法
Python でクロージャを作成するには、別の関数内にネストされた関数を定義する必要があります:
def make_counter(): i = 0 def counter(): # counter() is a closure nonlocal i # Use nonlocal to access i from the enclosing scope i += 1 return i return counter c1 = make_counter() c2 = make_counter() print(c1(), c1(), c2(), c2())
出力:
1 2 1 2
この例では、make_counter 関数は永続的なカウントを維持するクロージャを返します。 nonlocal キーワードにより、カウンタ クロージャは、外側のスコープで定義された i 変数にアクセスできるようになります。
結論
クロージャは、新しい可能性を解き放つ Python の基本的な概念です。カプセル化、状態管理、イベント処理。変数のスコープを拡張できる機能により、開発者は変化する条件に動的に応答する堅牢で効率的なコードを作成できます。
以上がPython でクロージャによって状態の保存とカプセル化がどのように可能になるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。