クロージャの公開: 簡略化された説明
プログラミングの領域では、クロージャはしばしば複雑な概念として表面化します。この記事は、これらの謎めいた実体を解明し、その本質を解き明かし、特に Python エコシステム内での有用性を明らかにすることを目的としています。
What Lurks Beneath?
クロージャ、つまりPython に関係する、それが生まれた環境を「記憶する」という超能力を備えた並外れた機能です。これは、クロージャが呼び出されると、たとえそれらの要素がスコープから消えてしまったとしても、クロージャはその開始時に普及していた変数やデータにアクセスできることを意味します。
実際的な意味と使用法
環境を「フリーズ」するクロージャの機能により、無数の可能性が開かれます:
例を使ってさらに詳しく説明する
次の Python コード スニペットを考えてみましょう:
def make_counter():
i = 0
def counter():
nonlocal i
i = 1
return i
return counter
ここで、make_counter はクロージャーの力で装飾された関数カウンターを生成します。この関数は、呼び出し時に内部変数 i をインクリメントし、囲んでいる関数のスコープに直接アクセスできないにもかかわらず、その値を保持します。
counter の複数のインスタンスをインスタンス化するとき (c1 と c2 に見られるように)、それぞれインスタンスは独自のプライベート i 変数で動作します。 c1() と c2() の出力は別個で独立しており、クロージャのカプセル化の性質を示しています。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3