Встречается на собеседованиях • сегодня

В чем разница между async def и def

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

Ключевые отличия:

  1. Асинхронные функции работают с event loop и требуют await для вызова других асинхронных операций
  2. Вызов async def функции без await вернет корутину (объект), а не результат
  3. Асинхронные функции используются для I/O-bound операций (сеть, файлы и т.д.)

Пример:

python
import asyncio

async def async_task():
    await asyncio.sleep(1)
    return "Done"

def sync_task():
    time.sleep(1)
    return "Done"

# Вызов
async def main():
    result = await async_task()  # правильно
    # async_task()  # вернет корутину, но не выполнится
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы