面试题答案
一键面试async
关键字作用
async
关键字用于定义一个异步函数。异步函数返回一个coroutine
对象,该对象在被await
时可以暂停函数的执行,直到关联的coroutine
完成。它本质上标记了函数内部可能包含await
表达式,使得函数能够以异步的方式执行。
await
关键字作用
await
关键字只能在async
定义的异步函数内部使用。它用于暂停当前异步函数的执行,直到等待的coroutine
完成(即被await
的对象是一个可等待对象,如coroutine
、Task
或Future
)。一旦被等待的coroutine
完成,await
表达式将返回该coroutine
的返回值。
示例代码
import asyncio
async def inner_async_function():
await asyncio.sleep(1)
return "Inner function result"
async def outer_async_function():
result = await inner_async_function()
print(result)
if __name__ == "__main__":
asyncio.run(outer_async_function())
在上述代码中:
inner_async_function
是一个异步函数,它使用await asyncio.sleep(1)
模拟了一个异步操作(这里是暂停1秒),最后返回一个结果。outer_async_function
也是一个异步函数,它使用await
调用了inner_async_function
,等待其完成并获取返回值,然后打印结果。asyncio.run(outer_async_function())
用于运行异步函数,启动整个异步操作流程。