@Meoniz
ничего не умею, но могу сделать что угодно

Как запустить две асинхронные функции?

Возможно глупый вопрос, но я прошу ответить на него. Только начал изучать asyncio

Вот допустим у меня есть такой код:
async def test_1(message):
    await print(message + " 2")


async def test_2(message):
    await print(message)
    await test_1(message)


test_2("Hello")

Если я запускаю его, то первая асинхронная функция вызывает другую асинхронную функцию и в коносль вылетает ошибка: RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Что делать, если мне уж прям очень нужно как-то вызывать какую-то функцию вне асинхронной? Например, если я пишу бота на aiorgam, там как раз такие проблемы часто бывают
  • Вопрос задан
  • 1259 просмотров
Решения вопроса 2
iggor-markin
@iggor-markin
Python Developer
Print не асинхронная функция. В вашем случае всё может работать так:

import asyncio


async def test_1(message):
        print(message + " 2")


async def test_2(message):
        print(message)
        await test_1(message)


asyncio.run(test_2("Привет!"))
Ответ написан
@alekssamos
Программист любитель
import asyncio

async def foo():
    print("foo")

async def bar():
    print("bar")

async def main():
    await asyncio.gather(foo(), bar())

if __name__ == "__main__":
    asyncio.run(main())

61d333cb317c8733090499.jpeg
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы