gpt4 book ai didi

python - yield 如何确定它的迭代完成了一次。?

转载 作者:行者123 更新时间:2023-11-28 21:05:14 28 4
gpt4 key购买 nike

我在 What does the "yield" keyword do in Python? 上读到了有关 yield 的信息python 中的关键字,但我有一个问题,即 yield 的系统标识如何迭代一次。

def test_yield():
name = 'Hello World!'
for i in name:
yield i

y= test_yield()

print "first yield",y
for c in y:
print c

print "second yield",y
for c in y:
print c

输出

first yield <generator object test_yield at 0x7f4c2bc10be0>
H
e
l
l
o

W
o
r
l
d
!
second yield <generator object test_yield at 0x7f4c2bc10be0>

在输出中第二次打印了 yield 对象但没有迭代。那么它执行一次的程序如何识别?

最佳答案

遍历一个迭代器“用完它”。所以你的 first yield 循环遍历它并到达终点。就像您打开一个文件并读取所有行直到 EOF。之后,无论你调用多少次read(),你都不会得到更多的数据,只有EOF。同样,一旦您的迭代器到达其最后一个元素,对其调用 .next 只会引发 StopIteration

关于python - yield 如何确定它的迭代完成了一次。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com