Вот код (любезно Дэвид Бизли, слайд # 32 http://dabeaz.com/coroutines/Coroutines.pdf):Почему этот код печати 3
def countdown(n):
print "Counting down from", n
while n >= 0:
newvalue = (yield n)
# If a new value got sent in, reset n with it
if newvalue is not None:
n = newvalue
else:
n -= 1
c = countdown(5)
for n in c:
print n
if n == 5:
c.send(3)
И вот результат: http://codepad.org/8eY3HLsK
Я понимаю, что это Безразлично» t print 4, но почему он не печатает 3? Когда n установлено в 3, следующая итерация должна дать 3, а не 2? Что мне не хватает?