async def
вместо def
.
Например:
async def my_async_function():
await asyncio.sleep(1) # Пример асинхронной операции
return "Готово!"
Для создания асинхронной функции в Python используется ключевое слово async def
. Это ключевое слово указывает, что функция является сопрограммой (coroutine), и ее выполнение может быть приостановлено и возобновлено в определенные моменты, не блокируя основной поток выполнения программы.
Вот простой пример:
import asyncio
async def my_async_function():
print("Начало выполнения асинхронной функции")
await asyncio.sleep(1) # Приостанавливаем выполнение на 1 секунду
print("Завершение выполнения асинхронной функции")
async def main():
await my_async_function()
if __name__ == "__main__":
asyncio.run(main())
Разберем пример:
async def my_async_function():
определяет асинхронную функцию с именем my_async_function
.await asyncio.sleep(1)
: Ключевое слово await
используется для приостановки выполнения функции до тех пор, пока не завершится операция, к которой оно применяется. В данном случае, функция приостанавливается на 1 секунду. Функция asyncio.sleep()
сама по себе является асинхронной.async def main():
определяет еще одну асинхронную функцию, которая вызывает my_async_function
.asyncio.run(main())
: Эта строка запускает event loop (цикл событий) asyncio и выполняет асинхронную функцию main()
. Функция asyncio.run()
является самым простым способом запускать асинхронный код, но она создает новый event loop и закрывает его по завершении. Если вам нужно интегрировать асинхронный код в существующий event loop, вам могут потребоваться другие методы.Важные моменты:
await
или использоваться в качестве задач (tasks) в цикле событий asyncio.await
может использоваться только внутри async def
функций.В этом примере мы используем asyncio.sleep()
для имитации длительной операции. В реальных приложениях вместо этого будут использоваться асинхронные функции для работы с сетью, базами данных или другими ресурсами.