Back to questions
Junior — Middle
70
Какое различие существует между объявлением функции с использованием async def и обычной функции с def в Python?
Answer from AI
sobes.tech AI
Объявление функции с async def в Python создаёт асинхронную функцию (корутину), которую можно вызывать с помощью await внутри асинхронного контекста. Обычная функция с def — синхронная и выполняется сразу при вызове.
Основные различия:
async defпозволяет писать неблокирующий код, например, для работы с вводом-выводом (I/O), сетевыми запросами и т.п.- Асинхронная функция возвращает корутину, которую нужно запускать через
awaitили в цикле событий. - Синхронная функция выполняется полностью при вызове и блокирует поток до завершения.
Пример:
import asyncio
async def async_func():
await asyncio.sleep(1)
return 'async result'
def sync_func():
import time
time.sleep(1)
return 'sync result'
async def main():
result = await async_func()
print(result)
asyncio.run(main())