1. 程式人生 > >Python 3.6 TypeEror: iter() returned non-iterator of type

Python 3.6 TypeEror: iter() returned non-iterator of type

ext -i mage on() self. peer 技術分享 .com span

環境:Python 3.6

class Fabs(object):
    def __init__(self,max):
        self.max = max
        self.n, self.a, self.b = 0,0,1
        
    def __iter__(self):
        return self
    
    def next(self):
        if self.n < self.max:
            r = self.b
            self.a,self.b = self.b, self.a+self.b
            self.n 
= self.n+1 return r raise StopIteration()
for key in Fabs(3):
    print (key)

技術分享圖片

原因是 Python 3 中沒有next(), 而是__next__(self) 代替

Python 3.6 TypeEror: iter() returned non-iterator of type