私はPythonで勉強していますが、それはジェネレーターが戻り値を出力する方法であるだけでなく、ジェネレーターに値を入れる方法でもあることがyield
わかりました。yield
たとえば、次のコード
def f():
print (yield),
print 0,
print (yield),
print 1
g = f()
g.send(None)
g.send('x')
g.send('y')
グローバルスコープでは、ジェネレータへsend
の値'x'
であり、したがって、出力されます。でも理解できない'y'
f
x 0 y 1
- 2
yield
秒ですが3send
秒です。None
なぜ最初に送信する必要があるのですか? StopIteration
最後にをスローしsend
ます。この例外を回避する方法はありますか?
誰か説明してもらえますか?前もって感謝します。