問題タブ [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 に答える
112 参照

python - 「yield from」はどのようなオブジェクトで使用できますか?

最初に ( PEP 380 )、yield from「サブジェネレータ」への委譲に使用する構文が導入されました。その後、廃止されたジェネレーターベースのコルーチンで使用されました。

yield from一般的にどのようなオブジェクトに適用できるのかわかりません。私の最初の推測は__iter__、イテレータを返すために必要なのはオブジェクトのメソッドだけだというものでした。実際、以下は Python 3.8 で動作します。

asyncio.sleep(1)ただし、メソッドを持たないのような一部の awaitable でも機能し__iter__ます。

一般的なルールは何ですか?yield fromオブジェクトがformの引数として与えられるかどうかを決定するものは何ですか?

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

php - 同じ関数での「yield」と「yield from」

yield同じ機能を使用する必要がありますが、最後または(最後に来るもの)yield fromのみを生成すると、意図したとおりに機能しないようです。yield fromyield

私のコードは ( https://3v4l.org/jFDXh ):

すべての PHP バージョンで のみを出力しますが、代わりに出力[ 7, 8, 9 ]する必要があることは明らかです。[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

ただし、を介して同じことを行うとforeach、すべてが正常に見えます。に関連する問題のようですiterator_to_array()が、実際にはこれGeneratorを配列に変換する必要があります。

それで、私は何が欠けていますか?

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

python - Pythonコルーチンで「yield from」を理解するには?

コードはFluent Python 1st edtionから来ています。

の行が理解できません。その行while True:grouper削除するとStopIterationエラーが発生します。

grouperしかし、それが機能しない新しいバージョンが見つかりましたwhile True:。(または別の)group.send(None)で別のループが必要なのはなぜですか?while True:results[key] = yield from averager()

私の理解でgroup.send(None)は、停止して値yield from averager()を割り当てresults[key]ます(Result(count, average))。それで全部です。