MST
星途 面试题库

面试题:Python异步编程之协程基础

请解释Python中`async`和`await`关键字在异步编程中的作用,并通过一个简单的示例展示如何使用它们创建一个异步函数和调用另一个异步函数。
40.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

async关键字作用

async关键字用于定义一个异步函数。异步函数返回一个coroutine对象,该对象在被await时可以暂停函数的执行,直到关联的coroutine完成。它本质上标记了函数内部可能包含await表达式,使得函数能够以异步的方式执行。

await关键字作用

await关键字只能在async定义的异步函数内部使用。它用于暂停当前异步函数的执行,直到等待的coroutine完成(即被await的对象是一个可等待对象,如coroutineTaskFuture)。一旦被等待的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())

在上述代码中:

  1. inner_async_function是一个异步函数,它使用await asyncio.sleep(1)模拟了一个异步操作(这里是暂停1秒),最后返回一个结果。
  2. outer_async_function也是一个异步函数,它使用await调用了inner_async_function,等待其完成并获取返回值,然后打印结果。
  3. asyncio.run(outer_async_function())用于运行异步函数,启动整个异步操作流程。