問題タブ [yield-from]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
171 参照

python - StopIteration が "yield from" によって処理されない理由がわからない

の「双方向トンネル」機能を説明している「Fluent Python」ブックの次のサンプル コードを見yield fromて、次の疑問があります。

StopIteration上記の委任ジェネレーターを次の委任ジェネレーターに置き換えると、例外が発生するのはなぜですか?

これまでに学んだことから、理論的には を削除してwhile Trueも問題ないようです。コルーチンgroup.send(None)が を引き起こし、を返します。これは委任ジェネレーターに渡されます。そして、委任ジェネレーターは、それを に割り当てることで終了します。averager()breakResult(...)Result(...)results[key]

しかし、代わりに起こっていることは次のとおりです。

洞察はありますか?