je code qui imprime les messages qu'il reçoit dans une boucle:Comment un générateur peut-il être converti en une fonction qui ne renvoie que la première valeur générée par le générateur?
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()
Je souhaite modifier ce code tel qu'il utilise une fonction simple qui arrête jusqu'à ce qu'un message est rencontré, puis retourne qu'un message et, bien sûr, de contrôle:
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())
Comment cela pourrait-il être fait?
Vous pouvez utiliser 'next' une fois sur le générateur dans la fonction pour donner la première valeur – akash93