生成器

什么是生成器?

只要在函数体中出现yield关键字,那么再执行函数体代码时就会得到一个结果

def fun()

  print('y1')

  yiled 1

  print('y2')

  yiled 2

  print('y3')

  yiled 3

生成器就是迭代器

g=func()

res1=next(g)

print(res1)

res2=next(g)

print(res2)

 

res3=next(g)

print(res3)

yield为我们提供了一种自定义迭代器对象的方法

yield可以保存函数体代码运行或者暂停的状态,并可以返回多个值,但是return只可以返回一个值

def my_range(start,stop,strp=1):

  while start <stop:

    yield start

    start+=step

g=my_range(1,5,2)

print(g)

print(next(g))

print(next(g))

print(next(g))

print(next(g))

用for实现

for i in my_range(1,5,2):

  print(i)

 

posted on 2018-01-02 19:41  刘了个岐  阅读(110)  评论(0编辑  收藏  举报

导航