В Python 2 имаше грешка, когато return беше заедно с yield в дефиницията на функцията. Но за този код в Python 3.3
def f():
return 3
yield 2
x = f()
print(x.__next__())
няма грешка, че return се използва във функция с добив. Въпреки това, когато се извика функцията __next__
, тогава се хвърля изключение StopIteration. Защо няма просто върната стойност 3
? Това връщане някак ли е игнорирано?