g = get_infinite()とする理由を教えてください

2017年10月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))

以下のように書き換えてみました。

def get_infinite(): 
    i = 0
    while True:
        yield i * 2
        i+= 1

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

しかし、実行結果が

0
0
0

とすべて0になってしまいました。

動画内のプログラムではg = get_infinite()としていますが、どうしてget_infinite()を直接使うのでなく、gに代入したものを使っているのでしょうか?

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?