我使用的是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'
这段代码实际上来自互联网。格莱玛在我看来还行,但问题是怎么发生的呢?
谢谢。