async 非同期関数/コンテキスト
最終更新:2026-09-22
async 非同期関数/コンテキスト
async は async def 関数または async with コンテキストを宣言するために使用する。
| カテゴリ | キーワード/文 |
|---|---|
| 種類 | キーワード/文 |
| Python バージョン | 3.5+ |
📝 構文
async def name(params):
body
[async with expr as var: block]
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
hi
🏷️ 関連するキーワード/文
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Q`async def` と `def` の違いは何ですか?
A`async def` はコルーチン関数を定義します。呼び出しても本体は実行されず、コルーチンオブジェクトを返します。実際に実行するには `await` するか、`asyncio.run()` で駆動します。
Qモジュールのトップレベルで async 関数を直接呼んでも実行されないのはなぜ?
A呼び出しはコルーチンオブジェクトを返すだけで、トップレベルでは `await` を直接使えないためです。正しい方法はラップすることです:`async def main(): ...` を定義し、`asyncio.run(main())` で実行します。
Q`async` は asyncio としか使えませんか?
Aいいえ。`async`/`await` は言語の構文であり、`asyncio` は最も一般的なイベントループ実装にすぎません。`async with` / `async for` はそれぞれ非同期コンテキスト管理と非同期反復に使われます。