1. ホーム
  2. python

[解決済み] クロージャ(Pythonの場合)について教えてください。

2023-02-22 12:04:51

質問

クロージャについていろいろ読んできて、自分では理解しているつもりですが、自分自身や他の人のために絵を曇らせることなく、誰かができるだけ簡潔かつ明確にクロージャを説明してくれることを期待しています。 私は、どこで、なぜそれを使いたいのかを理解するのに役立つような、簡単な説明を探しています。

どのように解決するのですか?

クロージャ上のクロージャ

オブジェクトはデータでメソッド クロージャは関数に です。

def make_counter():
    i = 0
    def counter(): # counter() is a closure
        nonlocal i
        i += 1
        return i
    return counter

c1 = make_counter()
c2 = make_counter()

print (c1(), c1(), c2(), c2())
# -> 1 2 1 2