gpt4 book ai didi

python - 如何在 Python 中显式检测生成器端?

转载 作者:行者123 更新时间:2023-12-03 22:53:50 26 4
gpt4 key购买 nike

我写了一个生成器,它返回值的元组:

import numpy as np

def mygenerator():
data = np.arange(10)
data = np.reshape(data, (-1, 2))
for row in data:
yield row[0], row[1]

generator = mygenerator()
while True:
a, b = generator.__next__()
print("a: ", a, "b: ", b)

并且想在没有 for ... in 的情况下使用它.那么如何检测世代结束呢?

最佳答案

生成器会抛出异常 StopIteration当它耗尽时。您可以使用 try 捕获异常… except语句和退出循环发生时:

while True:
try:
a, b = next(generator)
except StopIteration:
break
print("a: ", a, "b: ", b)

顺便说一句,为什么不 for环形?看起来:
for a, b in generator:
print("a: ", a, "b: ", b)

完全符合您的要求,没有繁琐的结构。

关于python - 如何在 Python 中显式检测生成器端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46173039/

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