在Python中, ?边循环?边计算的机制, 称为?成器: generator
创建生成器: G = ( x*2 for x in range(5))
可以通过 next() 函数获得?成器的下?个返回值
没有更多的元素时, 抛出 StopIteration 的异常
生成器也可以使? for 循环,因为?成器也是可迭代对象
创建生成器的另外一种方法:
def fib(times): #斐波拉契数列(Fibonacci
n = 0
a,b = 0,1
while n<times:
yield b
a,b = b,a+b
n+=1
return ‘done‘
使? __next__() ?法
使?send() 方法 (第一次不能使用,使用前先调用next)
next()等价于send(None)
def gen():
i = 0
while i<5:
temp = yield i #接收send传入的参数
print(temp)
i+=1
?成器的特点:
1. 节约内存
2. 迭代到下?次的调?时, 所使?的参数都是第?次所保留下的
原文:https://www.cnblogs.com/Minlwen/p/10589412.html