Мне интересно узнать разницу между использованием raise StopIteration
и return
в генераторах.
Например, существует ли разница между этими двумя функциями?
def my_generator0(n):
for i in range(n):
yield i
if i >= 5:
return
def my_generator1(n):
for i in range(n):
yield i
if i >= 5:
raise StopIteration
Я предполагаю, что более "питонический" способ сделать это - второй способ (пожалуйста, поправьте меня, если я ошибаюсь), но насколько я вижу, оба способа поднимают исключение StopIteration
.