环境: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) 代替