yieldイールド — 値を返して一時停止 は関数の中で値を1つずつ出す命令です。return が「全部まとめて返す」なのに対し、yieldイールド — 値を返して一時停止 は「1つ出して、また続きから始める」ことができます。
| コード | 読み方 |
|---|---|
yield 値 | 値を1つ出して関数を一時停止(yieldイールド — 値を返して一時停止) |
next(gen) | ジェネレータジェネレータ — 値を1つずつ生成から次の値を取り出す |
for x in gen(): | forループでも値を取り出せる |
return vs yield | return は関数終了、yield は一時停止 |
yieldイールド — 値を返して一時停止 を使う関数はジェネレータジェネレータ — 値を1つずつ生成になる。yield 値 で値を1つ出して関数は一時停止し、next() で続きから再開する。大きなデータを扱うときにメモリを節約できる。