問題タブ [yield-keyword]
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 - ジェネレーターの簡単な例が理解できない
これらの簡単な例をいくつかの場所で見つけました。
最初の例では、ジェネレーターはそれ自体を使い果たしますが、2 番目の例ではそうではありませんが、for ループが無限生成の停止を担当しています。典型的な説明では、yield
は値を「返し」、関数の状態を凍結し、呼び出されたときに関数はその状態から続行しnext()
ます。この説明は少し誤解を招きませんか?どちらの例でも、ジェネレーター関数を複数回呼び出すものを「視覚化」することはできません ( next()
)。ジェネレーターを返すと言った方が適切ではないyield
でしょうか。ジェネレーターは、1 回だけ反復できる反復可能なオブジェクトです。
編集: ジェネレーターも反復可能なオブジェクトではありません: 反復可能なオブジェクトをオンザフライで生成し、「返す」ものではなく「生成する」ものは 1 回だけ反復できます。これは、他の多くの概念と同様に、適切に把握できるようになるまで少し気が遠くなります:) ありがとうございます。
python - Pythonジェネレーターでのコードの実行はいつ停止しますか?
「列挙」組み込み関数と同様に動作するジェネレーターを構築することにより、yield ステートメントの動作を理解しようとしていますが、それを反復する方法によっては矛盾が発生します。
ジェネレーターについての私の理解では、yield ステートメントに到達するとコードの実行が停止し、値が返されるということです。これは、以下のスクリプトで取得したものと一致します。
この場合、ジェネレーターは yield ステートメントで正確に停止したように見え、n+=1 ステートメントで 2 番目の 'next' ステートメントで再開します。
ただし、以下の for ループを使用すると、ジェネレーターは yield ステートメントで停止していないようです。
これは私が得るものです:
コメントを考慮して編集する
1 つの要素だけを繰り返し処理していることはわかっていますが、最後の「ジェネレーターの 'yield' ステートメントの後」という文 (すべての要素を繰り返し処理しても表示される) が表示されるとは思っていませんでした。
なぜこれが起こるのですか?
python - Tornado POST リクエストの応答を返す
POST リクエストがハンドラーで実行された HTML で何らかの値をレンダリングするために self.write メソッドが広く使用されているトルネードのドキュメントと例を見てきました。しかし、応答をクライアントに返す方法についてはあまり明確にわかりませんでした。
たとえば、Tornado サーバーでクライアントから POST リクエストを呼び出しています。投稿リクエストを受け入れるコードは次のとおりです。
これで cbtp の値を見つけることができ、self.write(cbtp)
で HTML に出力できます。しかし、代わりに、{'cbtp':cbtp}
この応答がクライアントに送信されるようにコードを変更する方法を知りたい、またはこれが流暢に説明されているドキュメントを提供したいなど、この値を JSON 形式でクライアントに返したいと考えています。
のようなことをする
投げるBadYieldError: yielded unknown object
python-3.x - Panda データフレームの生成エラー
パンダのデータフレームに対して 1 行ずつ生成しようとしていますが、エラーが発生します。データフレームは、毎日の始値、終値、高値、安値、出来高の情報を含む株価データです。
以下は私のコードです。このクラスは、MySQL データベースからデータを取得します
メイン関数では:
データ例:
update_bars
関数は次の行に移動するために呼び出されます_get_new_bar
(翌日の価格)
私の目的は毎日株価を取得することです(データフレームの行を繰り返します)がself.symbol_data[s]
、in_connect_MySQL
はデータフレームであり、in_get_new_bar
はジェネレータであるため、このエラーが発生します
AttributeError:
'generator'
オブジェクトに属性がありません'itertuples'
誰にもアイデアはありますか?
私はpython 3.6を使用しています。ありがとう
self.symbol_data
はdict
、symbol
データフレームを取得するための文字列キーです。データは株価データです。たとえばself.symbol_data["GOOG"]
、始値、安値、高値、終値、出来高を含む各行で、日付ごとの Google の毎日の株価情報インデックスを含むデータフレームを返します。私の目標は、 を使用してこの価格データを毎日繰り返すことyield
です。
_connect_MySQL
データベースからデータを取得します この例では、関数内の s = "GOOG"