第31次学习python生成器总结

语法上和函数类似:生成器终止于yield    函数终止于return

自动实现迭代器协议:

状态自动挂起: 

 

# #yield相当于return控制的是函数返回值
# def test():
# print("开始啦")
# yield 1
# print("第一次")
# yield 2
# print("第二次")
#
# t=test()
# print(t)#拿刀哥地址,生成器
# res=t.__next__()
# print(res)#结果:开始啦 1

#x=yield的另一个特性,接受send传来的值,把值赋值给x
# def test():
# print("开始啦")
# first=yield 1
# print("第一次", first)
# yield 2
# print("第二次")
#
# t=test()
# print(t)#拿刀哥地址,生成器
# res=t.__next__()
# res=t.send(None)#结果是:开始啦 第一次 None
# print(res)#开始啦 第一次 None 2



#并发 :2个程序没有先后顺序
def chibaozi(name):
print("我是【%s】,我准备开始吃包子"%name)
while True:
baozi=yield
print("%s 很开心把【%s】吃掉了"%(name ,baozi))

def shenchanbaozi():
test=chibaozi("zhangshan")
test.__next__()
for i in range(10):
test.send("包子%s" %i)
shenchanbaozi()

总结:先把一个的功能写出来,在实现一个函数,实现功能调用

posted on 2019-09-25 21:11  坚持是多么伟大的事情  阅读(138)  评论(0编辑  收藏  举报