def eat(name):
print("{}该吃饭了".format(name))
lst = []
for i in range(1, 10000):
x = yield lst
lst.append(x)
g = eat('张三') # 只是生成对象,不执行函数里面的代码
# print(g.__next__()) #第一次开始执行方法里面的代码并返回yied后面的值
print(g.send(None))
print(g.send('王二小')) #第二次执行将参数先传值给yield ,由yield将值转交给x,然后在执行相应的append操作,最后返回yield面的值。
print(g.send('王二小')) #第三次同第二次。
结果:
张三该吃饭了
[]
['王二小']
['王二小', '王二小']
本文通过一个具体的代码示例,深入解析了Python中生成器与协程的工作原理,展示了如何使用send方法与yield表达式进行数据的传递与接收,帮助读者掌握这一高级特性。

被折叠的 条评论
为什么被折叠?



