首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么python生成器只能使用一次?

为什么python生成器只能使用一次?
EN

Stack Overflow用户
提问于 2018-06-26 05:40:29
回答 1查看 939关注 0票数 -3

一旦我使用了一个生成器,它就不能再使用了。为什么会这样呢?

考虑以下代码:

代码语言:javascript
复制
def generator(n):
  a = 1

  for _ in range(n):
    yield a
    a += 1

def run_generator(generator):
  for a in generator:
    print(a, end = " ")

如果我要执行以下命令:

代码语言:javascript
复制
count_generator = generator(10)
run_generator(count_generator)
run_generator(count_generator)

它只会打印:

代码语言:javascript
复制
1 2 3 4 5 6 7 8 9 10

基本上,生成器在一次执行后就会死掉。

我知道一个生成器只能使用一次的事实是Python内置的,但是为什么是这样呢?只允许一个生成器对象执行一次有什么特别的原因吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51032155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档