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() для имитации длительной операции. В реальных приложениях вместо этого будут использоваться асинхронные функции для работы с сетью, базами данных или другими ресурсами.