说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 Python 中,await 表达式用于异步编程,是 asyncio 库的一部分。它用于暂停(等待)一个异步操作的完成,然后继续执行后续代码。await 关键字只能在 async 定义的异步函数中使用。简单说,它是挂起 coroutine 的执行以等待一个 awaitable 对象。 只能在 coroutine function 内部使用。
await 关键字用于等待一个异步操作的完成,其语法如下:
result = await coroutine
关键点:
简单示例:
import asyncio
async def main():
print("Hello")
await asyncio.sleep(1)
print("World")
# 运行异步函数
asyncio.run(main())
在这个例子中,await asyncio.sleep(1) 会暂停 main 函数的执行 1 秒钟。
异步函数调用:
import asyncio
async def say_after(delay, what):
await asyncio.sleep(delay)
print(what)
async def main():
await say_after(1, 'Hello')
await say_after(2, 'World')
# 运行异步函数
asyncio.run(main())
await say_after(1, 'Hello')
会暂停 main 函数,直到 say_after 函数完成。
并行运行多个任务:
import asyncio
async def say_after(delay, what):
await asyncio.sleep(delay)
print(what)
async def main():
task1 = asyncio.create_task(say_after(1, 'Hello'))
task2 = asyncio.create_task(say_after(2, 'World'))
await task1
await task2
# 运行异步函数
asyncio.run(main())
在这个例子中,task1 和 task2 将并行执行,因此总的运行时间大约是 2 秒而不是 3 秒。
异步编程的优势:
总结:
await 表达式是 Python 异步编程的核心,结合 async def 定义的异步函数使用。它可以暂停协程的执行,等待异步操作完成,再继续执行,从而提高程序在 I/O 操作时的效率。理解和使用 await 是编写高效异步代码的关键。
更新时间:June 9, 2024, 9:34 a.m. 标签:python await 异步 等待