問題タブ [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.
python-3.x - Pythonの「利回り」と「利回り」の違いは何ですか?
ジェネレーターとコルーチンを構築するために、コードでbasicyield
キーワードを頻繁に使用しています...
yield
ウェブ上でさまざまな関連ソリューションを検索しているときに、yield from
構文も見つけました。どちらも発電機で使用されます。
ここで機能が欠けているとは思わないのでfrom
、基本をどのように調整しyield
ますか?
python - yield from の戻り値の変更
これらのパーサーがあるとしましょう:
parse_foo
とparse_bar
はどちらも行を 1 つずつ生成するジェネレータです。単一のディスパッチ関数を作成する場合は、次のようにします。
yield from 構文を使用すると、情報をジェネレーターの上下に簡単にトンネリングできます。
歩留まりの結果を変更しながらトンネリングを維持する方法はありますか?
トンネリングを中断しながらこれを行うのは簡単です。
しかし、この方法ではパーサーまで使用でき.send()
ません。.throw()
私が考えている唯一の方法は、 のように醜いことtry: ... except Exception: ...
をして例外を渡すことです.send()
。それは醜く、乱雑で、バグが発生しやすいです。
php - `yield from $generator` と `return $generator` の違いは?
ジェネレーターを返す関数があります。現時点では以下を使用していますyield from
:
yield from
それを単純なに置き換えるとreturn
、この場合何か変わりますか? 多分実行中?それともパフォーマンス?yield from
新しい「外部」イテレータを生成しますか?
他のケースでyield from
は、それを数回使用したり、単純な s と組み合わせたりすることもできるため、より柔軟になる可能性がありますが、それyield
は私の場合は問題ではありません。
python - Python3 を使用した柔軟な XML から辞書への変換
必要なデータを含む XML ファイルが提供されており、それを CSV に変換する必要があります。
これは単純なはずですが、XML の「繰り返し単位」の子の数は常に同じではありません。
私が解決しようとしているのは、各子要素の子要素がなくなるまで反復し、これを 1 つの「行」として返す方法です。最終的な出力は、辞書のリスト (CSV の「行」ごとに 1 つのリスト) である必要があります。
例として
これにより、次のようになります。
私は xml.etree.ElementTree と root.iter を使用していましたが、ループには満足していますが、そのダイナミズムには満足しています。
ここで複数のネストされたリストのロジックを使用しようとしましたが、役に立ちませんでした。誰かが私を正しい方向に向けて、新しいアプローチを提案できますか?
最後の長さが異なる辞書はcsvに書き出すのに理想的ではないことは承知していますが、目的の出力に基づいて処理できます。
python - 「yield from」ステートメント (ジェネレーター委任) をネストすると、終了する「None」値が生成されるのはなぜですか?
yield from
ステートメントをネストすることは可能ですか?
単純な形式は明らかです。
生成するもの:
しかし、ネストされたジェネレーターがある場合はどうなりますか?
これにより、次が生成されます。
(ネストされているにもかかわらず)None
使用すると生成されるのはなぜですか?yield from
私は次のようなことができることを知っています:
これは、を除いて同じ出力を生成しますNone
(これは私が期待するものです)。簡単なループを書くこともできます:
しかし、ネストされた委任を使用する方がよりpythonicになると思いました(できればyield from x from y
oryield from x for x in y
ですが、それは適切な構文ではありません)。期待どおりに動作しないのはなぜですか?