Проверьте, является ли функция асинхронной в Python 3.7
Я хотел бы проверить, является ли функция асинхронной, прежде чем вызывать ее в Python. Например, здесь я хотел бы проверить, если f
является асинхронным, так что ожидание имеет смысл:
async def call_async_f(f):
assert function_is_async(f)
await f()
Как я мог реализовать function_is_async
? Я использую Python 3.7, который, кажется, имеет некоторые интересные новые функции асинхронности, и я не возражаю против решения 3.7.
0 ответов
inspect имеет проверки для большинства типов асинхронных объектов, в вашем случае это iscoroutinefunction
import inspect
async def call_async_f(f):
assert inspect.iscoroutinefunction(f)
await f()