問題タブ [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 投票する
0 に答える
365 参照

python-3.x - Pythonの「利回り」と「利回り」の違いは何ですか?

ジェネレーターとコルーチンを構築するために、コードでbasicyieldキーワードを頻繁に使用しています...

yieldウェブ上でさまざまな関連ソリューションを検索しているときに、yield from構文も見つけました。どちらも発電機で使用されます。

ここで機能が欠けているとは思わないのでfrom、基本をどのように調整しyieldますか?

0 投票する
3 に答える
1009 参照

python - yield from の戻り値の変更

これらのパーサーがあるとしましょう:

parse_fooparse_barはどちらも行を 1 つずつ生成するジェネレータです。単一のディスパッチ関数を作成する場合は、次のようにします。

yield from 構文を使用すると、情報をジェネレーターの上下に簡単にトンネリングできます。

歩留まりの結果を変更しながらトンネリングを維持する方法はありますか?
トンネリングを中断しながらこれを行うのは簡単です。

しかし、この方法ではパーサーまで使用でき.send()ません。.throw()

私が考えている唯一の方法は、 のように醜いことtry: ... except Exception: ...をして例外を渡すことです.send()。それは醜く、乱雑で、バグが発生しやすいです。

0 投票する
2 に答える
5023 参照

php - `yield from $generator` と `return $generator` の違いは?

ジェネレーターを返す関数があります。現時点では以下を使用していますyield from

yield fromそれを単純なに置き換えるとreturn、この場合何か変わりますか? 多分実行中?それともパフォーマンス?yield from新しい「外部」イテレータを生成しますか?

他のケースでyield fromは、それを数回使用したり、単純な s と組み合わせたりすることもできるため、より柔軟になる可能性がありますが、それyieldは私の場合は問題ではありません。

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

python - Python3 を使用した柔軟な XML から辞書への変換

必要なデータを含む XML ファイルが提供されており、それを CSV に変換する必要があります。

これは単純なはずですが、XML の「繰り返し単位」の子の数は常に同じではありません。

私が解決しようとしているのは、各子要素の子要素がなくなるまで反復し、これを 1 つの「行」として返す方法です。最終的な出力は、辞書のリスト (CSV の「行」ごとに 1 つのリスト) である必要があります。

例として

これにより、次のようになります。

私は xml.etree.ElementTree と root.iter を使用していましたが、ループには満足していますが、そのダイナミズムには満足しています。

ここで複数のネストされたリストのロジックを使用しようとしましたが、役に立ちませんでした。誰かが私を正しい方向に向けて、新しいアプローチを提案できますか?

最後の長さが異なる辞書はcsvに書き出すのに理想的ではないことは承知していますが、目的の出力に基づいて処理できます。

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

python - 「yield from」ステートメント (ジェネレーター委任) をネストすると、終了する「None」値が生成されるのはなぜですか?

yield fromステートメントをネストすることは可能ですか?

単純な形式は明らかです。

生成するもの:

しかし、ネストされたジェネレーターがある場合はどうなりますか?

これにより、次が生成されます。

(ネストされているにもかかわらず)None使用すると生成されるのはなぜですか?yield from

私は次のようなことができることを知っています:

これは、を除いて同じ出力を生成しますNone(これは私が期待するものです)。簡単なループを書くこともできます:

しかし、ネストされた委任を使用する方がよりpythonicになると思いました(できればyield from x from yoryield from x for x in yですが、それは適切な構文ではありません)。期待どおりに動作しないのはなぜですか?