ジェネレータで使われている変数はなぜ前回の値を保持しているのですか?

ジェネレータは中断されたときの値を保持するためです。
2020年5月8日
ユーザー
def get_infinite(): # ジェネレータ
    i = 0
    while True:
        yield i * 2
        i += 1

g = get_infinite()
print(next(g))
print(next(g))
print(next(g))

このソースを見るとiはローカル変数に見えるのですが
なぜ、前回の値を保持しているのでしょうか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(3)