首页 > 其他 > 详细

生成器

时间:2019-08-16 23:16:09      阅读:156      评论:0      收藏:0      [点我收藏+]

普通函数

技术分享图片
def generator():
    print(1)
    return a

ret = generator()
print(ret)
View Code

生成器

技术分享图片
#生成器函数/yield必须再函数里面且不能与return共用。
def generator():
    print(1)
    yield a
    #生成器函数执行之后会得到一个生成器作为一个返回值
ret = generator()
print(ret)
print(ret.__next__())
View Code

技术分享图片

注意一点:

在生成器中yield不会结束一个程序。但是比较有意思的一点是当一个函数里面有多个yield的时候,需要多次调用和函数里面yield次数一样多的调用,例如:

技术分享图片
#生成器函数/yield必须再函数里面且不能与return共用。
def generator():
    print(1)
    yield a
    print(2)
    yield b
    #生成器函数执行之后会得到一个生成器作为一个返回值
ret = generator()
print(ret)
print(ret.__next__())
print(ret)
print(ret.__next__())
View Cod

技术分享图片

 

如果只调用一次的话就会再第一次返回值时跳出函数并打印之前的代码,但是函数并没有结束,而是再等待下一次的调用。

 

生成器

原文:https://www.cnblogs.com/zly9527/p/11366532.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!