Junior — Middle
92
Quelle est la différence entre déclarer une fonction avec async def et une fonction normale avec def en Python?
Réponse de l'IA
sobes.tech IA
Объявление функции с 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())