Pythonの非同期コールバックの書き方
Pythonでは、非同期コールバックを実現するためにasyncioライブラリを使用できます。以下は、非同期コールバックを使用する方法を示す簡単な例です。
import asyncio
# 定义一个异步函数,模拟耗时的操作
async def long_running_operation(callback):
await asyncio.sleep(2) # 模拟2秒的耗时操作
result = "操作完成"
callback(result) # 调用回调函数,并传递结果
# 定义一个回调函数,用于处理异步操作的结果
def handle_result(result):
print("异步操作的结果:", result)
# 创建一个事件循环
loop = asyncio.get_event_loop()
# 调用异步函数,并传递回调函数
loop.create_task(long_running_operation(handle_result))
# 运行事件循环
loop.run_forever()
上記の例では、long_running_operationという非同期関数が定義されており、これは時間がかかる操作をシミュレートし、操作完了後にコールバック関数が呼び出されて結果が処理されます。
asyncio.get_event_loop() 関数でイベントループオブジェクトを取得し、loop.create_task() メソッドで関数をタスクとして作成します。引数には非同期関数とコールバック関数を渡します。
最後に、ループの処理に loop.run_forever() を使用し、非同期操作を実行し、操作完了後、コールバック関数で結果を処理します。
これは単なる一例であり、実際の使用ではより複雑な非同期操作とコールバック処理が特定のニーズに応じて行われます。