先了解一下什么叫做迭代器:
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
创建一个迭代器需要在类里实现__iter__ ()方法和 next() 方法
iter() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 next() 方法并通过 StopIteration 异常标识迭代的完成。
普通方法输出斐波那契数列:
fibonacci = list() # 创建一个列表
a = 0
b = 1
i = 0
while i < 10:
fibonacci.append(a)
a ,b = b, a+b
i += 1
for num in fibonacci:
print(num)
迭代器方法:
class Fibonacci(object):
def __init__(self, all_num):
self.all_num = all_num
self.current_num = 0
a = 0
b = 1
def __iter__(self):
return self
def __next__(self):
if self.current_num < self.all_num:
result = self.a
self.a, self.b = self.b, self.a + self.b
self.current_num += 1
return result
else:
raise StopIteration
fibo = Fibonacci(10)
for num in fibo:
print(num)