fib在python中什么意思_Python定义迭代器类失败,返回“iter()非Fib”类型的迭代器...

我使用的是python 2.7和ipython2.7。

在伊普顿我试过:class Fib(object):

def __init__(self, max):

super(Fib, self).__init__()

self.max = max

def __iter__(self):

self.a = 0

self.b = 1

return self

def __next__(self):

fib = self.a

if fib > self.max:

raise StopIteration

self.a, self.b = self.b, self.a + self.b

return fib

def main():

fib = Fib(100)

for i in fib:

print i

if __name__ == '__main__':

main()

它报告了一个错误:

类型错误回溯(最近一次调用)

在()

22个

23如果名称='main':

--->24主()

25个 in main()

18 def main():

19 fib = Fib(100)

---> 20 for i in fib:

21 print i

22

TypeError: iter() returned non-iterator of type 'Fib'

这段代码实际上来自互联网。格莱玛在我看来还行,但问题是怎么发生的呢?

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值