首页 > 其他 > 详细

对于生成器的理解

时间:2018-09-08 18:50:06      阅读:170      评论:0      收藏:0      [点我收藏+]

什么是生成器呢?

生成器就是一次生成一个值的函数

就像是一把自动步枪,生成器中的值就它的子弹,枪平时都会有保险,在关保险的时候怎么扣扳机都不会射出子弹

而自动步枪呢还可以单点和全自动两个模式进行射击.

 

举个例子:

 

def func():
    for i in range(100):
        yield i

 

这就是个简单的生成器,当你调用func()的时候不会取出任何值而是产生了一个生成器,就像是给枪装上了子弹,但是开了保险.

那么,怎么给枪关保险呢?

将函数赋给一个变量

 

a = func()

 

这就是给枪开保险.

既然开了保险了那么怎么射击呢?

首先是单发:

 

print(a.__next__())

一次取一个值,这就是单发,想要在此取值重复此操作

print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())
print(a.__next__())

 

技术分享图片

这就是你射击出来的子弹,但是稍微思考一下,如果是最后一发子弹怎么办?

程序会运行但是也会报错

技术分享图片

这个错误就告诉你子弹打光了

接下来说说全自动:

for item in a:
    print(item)

其实就是一个for循环,这样就会把迭代器中的值全部取出来了,简称为"全自动"

 

对于生成器的理解

原文:https://www.cnblogs.com/fangyanwangshijie/p/9610002.html

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