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

生成器

时间:2018-09-28 19:02:56      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:执行函数   nbsp   def   style   关键字   不同   cti   div   end   

yield关键字:只能用在函数内
在函数内但凡包含有yield关键字,再去执行函数,就不会立刻运行函数体代码了
会得到一个返回值,该返回值成之为生成器对象,生成器本质就是迭代器
总结yield:
1. 提供一种自定义迭代器的解决方案
2. yield可用于返回值
yield VS return
相同点:都可以用于返回值
不同点:yield可以暂停函数,yield可以返回多次值,而return只能返回值一次值函数就立刻终止
def func():
    print(=====>第一次)
    yield 1
    print(=====>第二次)
    yield 2
    print(=====>第三次)
    yield 3
    print(=====>第四次)

print(func)
g=func()
print(g)
#<function func at 0x00000000027A9510>
#<generator object func at 0x000000000263A318>生成器

__next__方法执行与next()方法相同

实例:

def range1(start,end,step):
    while start<end:
        yield start
        start+=step

g=range1(1,100,2)
for item in g:
    print(item)

 




生成器

标签:执行函数   nbsp   def   style   关键字   不同   cti   div   end   

原文地址:https://www.cnblogs.com/msj513/p/9719909.html

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