私は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'fx 0 y 1
- 2
yield秒ですが3send秒です。Noneなぜ最初に送信する必要があるのですか? StopIteration最後にをスローしsendます。この例外を回避する方法はありますか?
誰か説明してもらえますか?前もって感謝します。