迭代器示例

如果要创建一个类,让类的实例可以迭代,那么类需要具有两个条件:

1、类中要有__iter__()方法,在该方法中return self,就说类本身(或者可以是其他类,一个需要有__iter__和__next__的类),另外需要有__next()方法

class feb():
    def __init__(self,num):
        self.num = num
        self.a = 0
        self.b = 1
        self.max = 0


    def __iter__(self):
        return self

    def __next__(self):
        if self.max < self.num:
            ret = self.a
            self.a,self.b = self.b,self.a+self.b
            
            self.max += 1
            return ret
        else:
            raise StopIteration

a = feb(10)
for i in a:
    print(i)

 

posted @ 2019-01-08 12:46  greenfan  阅读(115)  评论(0)    收藏  举报