python 生成器的两个作用
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('王二小')) #第三次同第二次。
结果:
张三该吃饭了
[]
['王二小']
['王二小', '王二小']