実例を通して簡単にpython yieldの使い方を理解します。

787 ワード

実例コードは以下の通りです

def demo():
  print("    ...")
  while 1:
    res = yield '     '
    print("res:",res)
d1 = demo()
print(d1)
print(next(d1))
print("*"*20)
print(next(d1))
実行結果は以下の通りです。
実行を開始します
これは戻り値です
************
レス:None
これは戻り値です
コードの説明、個人的な理解、話が間違っています。
d 1=demo()オブジェクトを生成します。何も出力されません。
print(d 1)ここでは何も入力しません。プログラムは初めてyieldにあったので、一時停止しました。たとえyieldの前に出力文があっても、同じように出力します。
print(next(d 1))プログラムは引き続きyieldを実行します。2回目はyieldに会って、return「これは戻り値です。」
これは戻り値です
print(next(d 1))next(d 1)を再度実行すると、3回目のyieldに相当します。前のステップはreturnに相当します。resは与えられていないので、Noneのために、引き続きwhileを実行します。4回目の遭遇はyieldです。出力は「これは戻り値です。」
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。