■ はじめに
今回は、yield (イールド)について、メモする。
目次
【1】yield 【2】サンプル 例1:ループ 例2:__next__()
【1】yield
cf. yield = 生む、引き起こす、明け渡す、譲渡する 以下のサイトで言っている return との対比が理解しやすいかも。
より抜粋
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