Почему в следующий раз возникает «StopIteration», но «для» сделать нормальный возврат?
В этом куске кода почему используетсяза' результата нетStopIteration» или этоза' цикл перехватывает все исключения и затем молча завершается? В каком случае, почему у нас есть постороннийвернуть'?? Или этоraise StopIteration
вызванный: ?return None
#!/usr/bin/python3.1
def countdown(n):
print("counting down")
while n >= 9:
yield n
n -= 1
return
for x in countdown(10):
print(x)
c = countdown(10)
next(c)
next(c)
next(c)
Если предположить,StopIteration
запускается:return None
, Когда генерируется GeneratorExit?
def countdown(n):
print("Counting down from %d" % n)
try:
while n > 0:
yield n
n = n - 1
except GeneratorExit:
print("Only made it to %d" % n)
Если я вручную сделаю:
c = countdown(10)
c.close() #generates GeneratorExit??
В таком случае почему нея вижу след?