【Python】 Python ~ 基本編 / yield ~

■ はじめに

今回は、yield (イールド)について、メモする。

目次

【1】yield
【2】サンプル
 例1:ループ
 例2:__next__()

【1】yield

cf. yield = 生む、引き起こす、明け渡す、譲渡する

以下のサイトで言っている return との対比が理解しやすいかも。

http://ailaby.com/yield/

より抜粋

return

関数の処理を 「終了」 し
値を返す

yield

関数の処理を 「一旦停止」 し <<★ここが違う(再度実行される)
値を返す <<その後、再度実行される

【2】サンプル

例1:ループ

def yield_sample():
  yield 'Hello'
  yield 'World'
  yield '!!!'

for result in yield_sample():
  print(result)

出力結果

Hello
World
!!!

例2:next()

def yield_sample():
  yield 'Hello'
  yield 'World'
  yield '!!!'

generator = yield_sample()

print(generator)
# ループせずに、明示的に呼び出すことができる
print(generator.__next__())
print(generator.__next__())
print(generator.__next__())

出力結果

<generator object yield_sample at 0x000002D57F90A990>
Hello
World
!!!

参考文献

https://techacademy.jp/magazine/15824

関連記事

Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
関数
https://dk521123.hatenablog.com/entry/2019/09/22/000000
関数・あれこれ
https://dk521123.hatenablog.com/entry/2020/11/02/000000