Ich bin neugierig auf den Unterschied zwischen raise StopIteration
und return
Anweisung in Generatoren.Was ist der Unterschied zwischen Raise StopIteration und einer Return-Anweisung in Generatoren?
Gibt es zum Beispiel einen Unterschied zwischen diesen beiden Funktionen?
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
ich das mehr „pythonic“ Art und Weise zu raten, es zu tun ist der zweite Weg (bitte korrigieren Sie mich, wenn ich falsch), aber soweit ich beide Wege werfen eine StopIteration
Ausnahme sehen.
expliziter oder impliziter ('off' Ende) 'return' ist die vorgesehene Weise einen Generator zu beenden. Wenn PEP 479 akzeptiert wird, wird die 'raise StopIteration' Version eventuell nicht mehr so funktionieren wie jetzt. –