2020年5月16日解決済み

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

ユーザー
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はローカル変数に見えるのですが
なぜ、前回の値を保持しているのでしょうか?

スタッフ

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

プレミアムプランとは?