RINCODE
@RINCODE
Я новичок, еще учусь

Возможно ли создать асинхронную функцию чтобы отправлять в неё данные постепенно без await?

Возможно ли создать асинхронную функцию чтобы отправлять в неё данные постепенно без await?
т.е.
async def ff(a):
print("первый a")
print("второй a")

def g():
ff(1)
ff(2)

g()


При этом мне в def g нельзя юзать await т.к. я не могу сделать этот метод асинхронным. Буду рад помощи, нашёл что то тип second_data = yield но не получилось сделать чтобы def ff(a): был ассинхронным
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
asyncio.Queue в помощь. Чтобы синхронно помещать туда элементы, или используй put_nowait(), или выкручивайся с вызовом put() через create_task().

Но у меня прямой вопрос: а как ты, собственно, собираешься выполнять синхронную g() в асинхронной программе? Потому что если через потоки, то про совет выше можешь забыть.
Ответ написан
@Everything_is_bad
вариант
async def ff(a):
    print("первый a")
    print("второй a")

async def hh():
    await ff(1)
    await ff(2)

def g():
    asyncio.run(hh())

g()


хотя больше похоже что ты просто не понимаешь как работает asyncio
Ответ написан
Ваш ответ на вопрос

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

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