В чем разница между async def и def
Python
Middle
Без компании
В чем разница между async def и def
Ответы
`async def` объявляет асинхронную функцию (корутину), которая может приостанавливать выполнение с `await`, не блокируя поток. Обычная `def` создает синхронную функцию, выполняющуюся последовательно.
Ключевые отличия:
- Асинхронные функции работают с event loop и требуют `await` для вызова других асинхронных операций
- Вызов `async def` функции без `await` вернет корутину (объект), а не результат
- Асинхронные функции используются для I/O-bound операций (сеть, файлы и т.д.)
Пример:
```
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() # вернет корутину, но не выполнится
```