生成器generator
1.生成器generator只有在调用的时候才会产生数据
2.只记录当前的位置
3.只有__next__()方法
list_file = (i * 2 for i in range(10))
print(list_file)
# __next__:下一个
print(list_file.__next__())
print(list_file.__next__())
可以被next()函数调用并不断返回下一个值的对象称为迭代器
# 生成器主要是生成列表的时候节省内存
list_file = (i * 2 for i in range(10))
print(list_file)
# __next__:下一个
print(list_file.__next__())
print(list_file.__next__())
from collections import Iterable
ls = []
print(isinstance(ls, Iterable))
print(dir(ls))
# 斐波那契数列
def fib(max):
n, a, b = 0, 0, 1
nums = list()
while n < max:
yield b
a, b = b, a + b
n = n + 1
nums.append(a)
return 'none'
nums = fib(10)
for num in nums:
print(num)