У меня есть некоторый код, который печатает любые сообщения, которые он получает в цикле:Как генератор может быть преобразован в функцию, которая возвращает только первое значение, полученное генератором?
import pytg
import pytg.utils
import pytg.receiver
@pytg.utils.coroutine
def receiver_function(tg_receiver):
while True:
message = (yield)
print(message)
tg_receiver = pytg.receiver.Receiver()
tg_receiver.start()
tg_receiver.message(receiver_function(tg_receiver))
receiver.stop()
Я хочу изменить этот код таким образом, что он использует простую функцию, которая останавливает, пока сообщение не встречается, а затем возвращается, что один сообщение и, конечно же, управление:
import pytg
import pytg.receiver
def get_one_message():
tg_receiver.start()
while #<insert magic>:
#<insert magic>
message = #<insert magic>
tg.receiver.stop()
return message
print(get_one_message())
Как это можно сделать?
Вы можете использовать 'next' один раз на генераторе внутри функции, чтобы просто дать первое значение – akash93