Python PEP479 Изменение обработки StopI изменения внутри генераторов
Может ли кто-нибудь помочь мне понять, что такое PEP479? Я читал документ и не мог обдумать это.
Аннотация говорит:
Этот PEP предлагает изменение для генераторов: когда StopItate вызывается внутри генератора, он заменяется на RuntimeError. (Точнее, это происходит, когда исключение собирается выпасть из стекового кадра генератора.)
Так, например, такой цикл все еще работает?
it = iter([1,2,3])
try:
i = next(it)
while True:
i = next(it)
except StopIteration:
pass
Или это означает, что если у меня есть определение генератора, например, так:
def gen():
yield from range(5)
raise StopIteration
StopIteration
будет заменен наRuntimeError
?
Буду очень признателен, если кто-нибудь сможет пролить свет на это.