「Python」yield文とsendメソッドを使用するサンプル
環境
PyCharm 2021.3
Python 3.9.7
書式
send関数を使用すると関数に値をセットします。
関数内にキーワードのyieldを記述します。
ジェネレータに対して next() が呼び出されるたびに、
ジェネレータは以前に中断した処理を再開します (ジェネレータは、全てのデータ値と最後にどの文が実行されたかを記憶しています)。
使用例
# coding: utf-8 #定義関数 def funA(p): for k in range(10): s = yield ('Study',p) if s is not None: p = s +"99" print("結果1 funA関数を呼び出す") cft = funA(" Skill ") print(next(cft)) print("結果2 send関数で引数の値を定義関数funAに渡します") cft.send(" test data 88") print(next(cft))
実行結果
結果1 funA関数を呼び出す ('Study', ' Skill ') 結果2 send関数で引数の値を定義関数funAに渡します ('Study', ' test data 8899')