生成器

什么是生成器?

只要在函数体中出现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)

 

转载于:https://www.cnblogs.com/liqui/p/8178803.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值