双方向通信の力を解き放つ: 「yield from」は Python 3.3 に何をもたらしますか?
Python 3.3 の "yield from" の威力
Python 3.3 では、"yield from" 構文が導入され、プログラミングに革新的なアプローチがもたらされました。ジェネレーターとコルーチンを使用します。通常のジェネレーターと似ていますが、yield from は呼び出し元とサブジェネレーターの間に直接接続を確立し、シームレスな双方向通信を可能にします。
1.ジェネレーターからのデータの読み取り
最も単純な使用例は、ジェネレーターからのデータの読み取りです。 yield from を使用すると、通常のループと同様に、簡略化された構文でジェネレーターから値を受け取ることができます。
たとえば、データの読み取りをシミュレートするジェネレーターを考えてみましょう。
<code class="python">def reader(): for i in range(4): yield '<< %s' % i
Usingから得られる場合、次のようにデータを反復処理できます:
<code class="python">def reader_wrapper(g): yield from g wrap = reader_wrapper(reader()) for i in wrap: print(i)
2.コルーチンへのデータの送信
は、データをコルーチンに送信するときに輝きます。 yield from を使用すると、ラッパーに送信されたデータは透過的にコルーチンに転送されます。
特定の宛先にデータを書き込むコルーチンを考えてみましょう:
<code class="python">def writer(): while True: w = (yield) print('>> ', w)</code>
yield を使用してこのライターにデータを送信するにはから:
<code class="python">def writer_wrapper(coro): coro.send(None) while True: try: x = (yield) coro.send(x) except StopIteration: pass w = writer() wrap = writer_wrapper(w) wrap.send(None) for i in range(4): wrap.send(i)</code>
3.例外処理
は例外をシームレスに処理します。サブジェネレーターで発生した例外は呼び出し元に伝播されます。さらに、ラッパーに送信された例外をサブジェネレーターにスローできます。
たとえば、ライター コルーチンでは:
<code class="python">def writer(): while True: try: w = (yield) except SpamException: print('***') else: print('>> ', w)</code>
yield from を使用すると、次のように例外を処理できます。 :
<code class="python">def writer_wrapper(coro): yield from coro</code>
4.双方向通信の力
yield from の重要な側面は、確立される双方向接続です。データをコルーチンに送信するだけでなく、例外を伝播し、サブジェネレーターの最終値を返すこともできます。
結論
yield from は強力なツールですそれは Python のジェネレーターとコルーチンに革命をもたらしました。双方向通信を簡素化し、例外をシームレスに処理し、洗練されたソリューションを可能にします。そのユースケースはここで説明した例をはるかに超えており、Python の多くの高度なプログラミング タスクに不可欠なコンポーネントとなっています。
以上が双方向通信の力を解き放つ: 「yield from」は Python 3.3 に何をもたらしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









