def h():
print 'Wen Chuan',
m = yield 5 # Fighting!
print m
d = yield 12
print 'We are together!'
c = h()
m = c.next() #m gets the value of yield 5
d = c.send('Fighting!') #d gets the value of yield 12
print 'We will never forget the date', m, '.', d
上記のコードを確認してください。実行結果は以下です。
>>> ================================ RESTART ================================
>>>
Wen Chuan Fighting!
We will never forget the date 5 . 12
そして、私の理解によると、最初の利回りの戻り値は「Fighting
! 」に変更されます。すでにprint m
値 5 が表示されているのに、なぜ後で表示されるのでしょうか?