迭代器

实现了__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)
posted @ 2020-09-12 09:45  6+0  阅读(87)  评论(0编辑  收藏  举报