\

Pythonの非同期処理について理解を深めるために、asyncawaitのキーワードに焦点を当ててみましょう。

asyncとawaitの基本

Python 3.5から、非同期I/Oを簡素化し、コルーチンのコードをより読みやすくするために新しい構文asyncawaitが導入されました。これらの新しい構文を使用するには、以下の2つの簡単な置換を行うだけです:

  1. @asyncio.coroutineasyncに置換します。
  2. yield fromawaitに置換します。

これらのキーワードは、非同期プログラミングを可能にするasyncioという組み込みの高レベルパッケージで使用されます。

asyncの使用

asyncキーワードは、関数定義の前に置くことで、その関数をコルーチン関数として定義します。例えば、次のように使用します:

import asyncio

async def hello_world():
    print("Hello World!")

hello_world()

このコードを実行すると、「’hello_world’コルーチンがawaitされてないよ」という警告が表示されます。これは、Pythonのasync defが単なる関数定義ではなく、コルーチン関数定義であるためです。コルーチン関数を実行すると、コルーチンオブジェクトが返され、このオブジェクトはイベントループ内でのみ実行可能です。

awaitの使用

awaitキーワードは、コルーチン関数内で使用され、指定したコルーチンの完了を待ちます。例えば、次のように使用します:

import asyncio

async def hello_world():
    print("Hello World!")

async def call_hello_world():
    await hello_world()

loop = asyncio.get_event_loop()
loop.run_until_complete(call_hello_world())

このコードでは、hello_world()が生成したコルーチンオブジェクトが実行されているように見えます。

まとめ

Pythonのasyncawaitキーワードは、非同期プログラミングを簡素化し、コルーチンのコードをより読みやすくするための強力なツールです。これらのキーワードを理解し、適切に使用することで、Pythonでの非同期プログラミングがより効率的で直感的になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です