迭代器

实现了__iter__方法的对象是可迭代的,实现了__next__方法的对象是迭代器

for   in   实际上做了两件事。第一个是调用__iter__方法生成一个可迭代的对象,第二个是循环调用__next__方法,直到遇到StopIteration

class Fib:
def __init__(self):
self.a, self.b = 0, 1

def __iter__(self):
return self

def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a > 1000:
raise StopIteration
return self.a


def main():
for n in Fib():
print(n)
原文地址:https://www.cnblogs.com/liujianing/p/13655908.html