首页 > 其他 > 详细

菜鸟眼中的生成器

时间:2019-04-05 15:54:58      阅读:136      评论:0      收藏:0      [点我收藏+]
‘‘‘
生成器:
方法1:将列表推导式的[]改成(),生成器不会一下子把所有内容生成出来,在我们需要的时候用next()去生成
方法2:在函数里面加上yield。
‘‘‘
# --------------------()------------------------------
b = (x for x in range(10))
print(next(b)) #0
print(next(b)) #1
print(next(b)) #2
print(next(b)) #3
print(next(b)) #4
print(next(b)) #5
print(next(b)) #6
print(next(b)) #7
print(next(b)) #8
print(next(b)) #9

# --------------yeild用法-------------------------------
‘‘‘
yield作用:返回对象,暂停函数,等待下次next重新激活
yield表达式只能在函数中使用
yield表达式可以使函数成为一个生成器
yield可以返回表达式结果,并且暂停函数执行。
‘‘‘
def func():
    print(1111)
    yield 1 #yield一个对象
    print(123)
    print(321)
    yield 2
    print(12345)

a = func()
# print(a) #生成器对象<generator object func at 0x000001437228E2A0>
print(next(a)) #第一次执行遇到yield 1函数暂停将上面运行结果返回,还想要后面的继续执行再写一个print(next(a))
print(next(a)) #第二次执行遇到yield 2函数暂停。
‘‘‘
Python使用生成器对延迟操作提供了支持,所谓延迟操作,是指在需要的时候才产生结果,而不是立刻产生结果,从而节省大量的
空间,这是生成器的主要好处。
‘‘‘

 

菜鸟眼中的生成器

原文:https://www.cnblogs.com/jb9527/p/10658732.html

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