エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
pythonのジェネレータは、yieldの有無ではなく、「yieldで返したか否か」で決まる。
記事へのコメント1件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
pythonのジェネレータは、yieldの有無ではなく、「yieldで返したか否か」で決まる。
次の記事を読んだ。 細かすぎて伝わりにくい、Pythonの本当の落とし穴10選+α - Qiita 総評としては、機... 次の記事を読んだ。 細かすぎて伝わりにくい、Pythonの本当の落とし穴10選+α - Qiita 総評としては、機構を把握せず(何故そういう挙動になるのかを理解せずに)に表面から入ろうとするとそうなるかもなあ、というものが多い。 なかでも気になったのがこれ。 (このように、ジェネレータ関数は def で定義します。これは通常の関数と同じですよね。違いは関数定義の中に yield があるかどうかです。 表面上はそう視えるが、実際には若干違う。 import dis def f1(): yield 1 def f2(): return 1 print(dis.dis(f1)) print(f1) print(f1()) print(dis.dis(f2)) print(f2) print(f2()) 4 0 LOAD_CONST 1 (1) 2 YIELD_VALUE 4 POP_TOP 6