Как реализовать асинхронную функцию
Python
Middle
Без компании
Как реализовать асинхронную функцию
Ответы
В Python асинхронные функции реализуются с помощью ключевого слова `async def` и работают в связке с `await`. Они выполняются в event loop и позволяют эффективно работать с I/O-bound операциями.
Пример простой асинхронной функции:
```
import asyncio
async def fetch_data():
print("Начало загрузки данных")
await asyncio.sleep(2) # Имитация долгой операции
print("Данные загружены")
return {"data": 123}
async def main():
task = asyncio.create_task(fetch_data())
print("Делаем что-то параллельно")
await task
print(f"Результат: {task.result()}")
asyncio.run(main())
```
Ключевые моменты:
- `async def` определяет асинхронную функцию
- `await` приостанавливает выполнение, пока операция не завершится
- `asyncio.create_task()` запускает задачу параллельно
- `asyncio.run()` запускает event loop
Асинхронные функции должны вызываться из других асинхронных функций или через event loop. Они не блокируют поток выполнения, позволяя обрабатывать другие задачи во время ожидания.