码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2019-08-16 22:49:50      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:none   closed   def   hide   意思   print   多次   close   代码   

普通函数

技术图片
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

技术图片

 

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

 

生成器

标签:none   closed   def   hide   意思   print   多次   close   代码   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!