In Python 2 gab es einen Fehler, wenn Rückgabe zusammen mit Ausbeute in Funktionsdefinition war. Aber für diesen Code in Python 3.3Rückgabe in Generator zusammen mit der Ausbeute in Python 3.3
def f():
return 3
yield 2
x = f()
print(x.__next__())
gibt es keinen Fehler, dass Rückkehr in Funktion mit der Ausbeute verwendet wird. Wenn jedoch die Funktion __next__
aufgerufen wird, wird die Ausnahme StopIteration ausgelöst. Warum gibt es nicht nur einen Rückgabewert 3
? Wird diese Rückkehr irgendwie ignoriert?
Interessant ... wenn ich versuche, 'def f():' wie in Python 3.2.5, bekomme ich: 'SyntaxError: 'return' mit argument in generator'. (Ich weiß, 3.2.x ist schon veraltet ...) – torek
Ich habe Python 3.3.1 verwendet – scdmb