D2B 发表于 2018-11-15 14:35:59

迭代器中关于斐波拉契数列的报错

各位大神们,请问在Python3.6.6中用迭代器列出菲波拉契数列时,代码运行执行时为什么会出现如下报错呢?

>>> class Fibs:
           def __init__(self,n=10):
                 self.a=0
                 self.b=1
                 self.n=n
           def __iter__(self):
                 return self
           def _next__(self):
                self.a,self.b=self.b,self.a+self.b
                if self.a>self.n:
                raise StopIteration
                return self.a

          
>>> fibs=Fibs()
          
>>> for each in fibs:
           print(each)

报错信息:   
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
    for each in fibs:
TypeError: iter() returned non-iterator of type 'Fibs'

谢谢各位的指导~

冬雪雪冬 发表于 2018-11-15 14:44:26

def __next__(self):

D2B 发表于 2018-11-15 15:39:30

冬雪雪冬 发表于 2018-11-15 14:44
def __next__(self):

{:5_109:}果然还是太粗心了。。。。多谢,太大意了
页: [1]
查看完整版本: 迭代器中关于斐波拉契数列的报错