python的迭代协议
迭代器是访问集合内元素的一种方式,一般用来遍历数据
__iter__方法
__next__方法
迭代器和可迭代对象
# 生成器函数:函数中只要有yield关键字,就是生成器函数
def gen_func():
yield 1
def func():
return 1
if __name__ == '__main__':
gen = gen_func()
# gen是生成器对象,是在python编译字节码的时候产生的
for v in gen:
print(v) # 1
val = func()
print(val) # 1
# 生成器函数:函数中只要有yield关键字,就是生成器函数
def gen_func():
yield 1
yield 2
yield 3
def func():
return 1
if __name__ == '__main__':
gen = gen_func()
# gen是生成器对象,是在python编译字节码的时候产生的
for v in gen:
print(v)
# 1
# 2
# 3
val = func()
print(val) # 1
# 生成器实现斐波那契数列
def gen_fib(index):
n, a, b = 0, 0, 1
while n < index:
yield b
a, b = b, a + b
n += 1
if __name__ == '__main__':
for d in gen_fib(10):
print(d)
'''
1
1
2
3
5
8
13
21
34
55
'''