44963612 发表于 2020-7-7 17:16:17

生成器的使用

def func():
    for i in range(1,5001):
      yield f'{i}号鸡蛋🥚'
ret = func()
for i in range(200):
    print(next(ret))
为什么这个生成是正常的
def func():
    for i in range(1,5001):
      yield f'{i}号鸡蛋🥚'
for i in range(200):
    print(next(func()))
这个却一直在生成第一个呢{:10_247:}

Twilight6 发表于 2020-7-7 17:17:50



第二个代码你每次 next(func()) 都是重新调用这个生成器

而第一个代码是一直都是调用 ret 这一个生成器

44963612 发表于 2020-7-7 17:25:04

Twilight6 发表于 2020-7-7 17:17
第二个代码你每次 next(func()) 都是重新调用这个生成器

而第一个代码是一直都是调用 ret 这一个生 ...

哈哈哈明白了! 就是第二个每次生成的id都不同对吧!

Twilight6 发表于 2020-7-7 17:26:16

44963612 发表于 2020-7-7 17:25
哈哈哈明白了! 就是第二个每次生成的id都不同对吧!

正解!
页: [1]
查看完整版本: 生成器的使用