给定一个简单的生成器:
def myGenerator(max):
for i in range(max):
yield i
它的用法如下:
>>> gen = myGenerator(10)
>>> next(gen)
0
>>> next(gen)
1
当我在生成器上执行close()
时,对next
的所有后续调用都会导致StopIteration
异常。你知道吗
>>> gen.close()
>>> next(gen)
StopIteration exception
发电机能注意到吗?yield
不会引发异常。我在找这样的东西:
def myGenerator(max):
for i in range(max):
try:
yield i
except CloseIteration as ex:
print("I got closed")
正如Jon在评论中提到的calling ^{} raises a ^{} exception ,您可以关注:
相关问题 更多 >
编程相关推荐