ホームページ >バックエンド開発 >Python チュートリアル >Pythonでのnextとsendの使い方の紹介(コード)

Pythonでのnextとsendの使い方の紹介(コード)

不言
不言オリジナル
2018-09-26 15:57:033245ブラウズ

この記事では、Python での next と send の使い方 (コード) を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

#send にパラメーターが含まれていない場合、send(None) と next() は次のように同じ効果を持ちます。

def a():
    print('aaa')
    p = yield '123'
  #print(p)
    print('bbb')

r = a()
print(next(r))
#print(r.send(None))
#使用next(r) 和 r.send(None)输出的结果都是
#注意的是,这里的p变量的值都是None

aaa

send のパラメータが None でない場合、yield xx は表現とみなされ、send のパラメータの値が p に代入され、その後の動作は next と同じになります。

#

def a():
    print('aaa')
    p1 = yield '123'
    print('bbb')
    if (p1 == 'hello'):
        print('p1是send传过来的')
    p2= yield '234'
    print(p2)

r = a()
next(r)
r.send('hello')

#结果为
aaa
bbb
p1是send传过来的

実行順序について説明します。まず、a() はジェネレーターであり、最初の実行は next(r) または r.send(None) です。 use r.send('xxxxx') ;これによりエラーが報告されます。初めて next(r) を実行すると、最初に aaa,

が出力され、yield に遭遇したときに飛び出し、r.send('hello') が実行されると、p1 が代入されますこんにちは、そして最後の実行を続行し、次のステップで bbb を出力し、次に 'p1 は送信によって渡されます' を出力します。2 番目の yield に再び遭遇するとジャンプするため、結果は 3 行のみ出力されます。後続の p2 は実行されません。

以上がPythonでのnextとsendの使い方の紹介(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。