Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: coroutine, asyncio

Как определить, является ли функция корутиной или обычной функцией?

Вопрос проверяет понимание различий между синхронными функциями и корутинами, а также знание инструментов introspection в Python.

Короткий ответ

Определить, является ли функция корутиной, можно с помощью inspect.iscoroutinefunction() или asyncio.iscoroutinefunction(). Такие функции объявляются с помощью async def. Обычные функции объявляются через def и выполняются синхронно. Проверка полезна при написании универсального кода.

Длинный ответ

Корутиной в Python считается функция, объявленная с использованием async def, которая возвращает coroutine object и выполняется через await.

Как проверить тип функции

Для этого используется модуль inspect.

Пример:

import inspect

async def coro():
    pass

def normal():
    pass

inspect.iscoroutinefunction(coro)    # True
inspect.iscoroutinefunction(normal)  # False

Также можно проверить уже созданный объект:

inspect.iscoroutine(obj)

Когда это используется

Проверка полезна:

  • в фреймворках

  • в middleware

  • в универсальных декораторах

Пример сценария:

if inspect.iscoroutinefunction(func):
    await func()
else:
    func()

Вывод

Определение корутины выполняется через inspect или asyncio. Это стандартный способ адаптировать код к синхронным и асинхронным функциям.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#coroutine

#asyncio

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.