标签:操作 函数 分享 一个 理解 def sans 告诉 技术分享
什么是生成器呢?
生成器就是一次生成一个值的函数
就像是一把自动步枪,生成器中的值就它的子弹,枪平时都会有保险,在关保险的时候怎么扣扳机都不会射出子弹
而自动步枪呢还可以单点和全自动两个模式进行射击.
举个例子:
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循环,这样就会把迭代器中的值全部取出来了,简称为"全自动"
标签:操作 函数 分享 一个 理解 def sans 告诉 技术分享
原文地址:https://www.cnblogs.com/fangyanwangshijie/p/9610002.html