Моя цель - разобраться с концепцией отправки данных в генератор Python. Ниже приведен мой фрагмент кода и неожиданный вывод:
def spam():
while True:
received = yield
print("Message received from generator function:", received)
yield received
if __name__ == "__main__":
s = spam()
print(s)
next(s)
names = ["Bob", "Nancy", "Daniela", "Martin"]
for name in names:
print(s.send(name))
Выход:
7tvmb228:Own subhayan.bhattachary$ python test_generators.py
<generator object spam at 0x10873aa20>
Message received from generator function: Bob
Bob
None
Message received from generator function: Daniela
Daniela
None
Может кто-нибудь указать мне, откуда взялись значения None и как это решить. Я предполагаю, что значения не передаются в функцию. Но почему это так? Где я иду не так.
Спасибо за любые ответы заранее.