检查 Python 3.7 中的函数是否异步



我想在用python调用函数之前检查它是否异步。例如,在这里我想检查f是否是异步的,以便 await 有意义:

async def call_async_f(f):
    assert function_is_async(f)
    await f()

如何实现function_is_async?我正在使用python 3.7,它似乎有一些有趣的新异步功能,我不介意3.7特定的解决方案。

inspect 检查了大多数类型的异步对象,在您的情况下它是 iscoroutinefunction

import inspect
async def call_async_f(f):
    assert inspect.iscoroutinefunction(f)
    await f()

最新更新