我对 Python 还很陌生,只是在看一些定义迭代器对象的例子。
我看的例子是:
class fibit: # iterate through fibonacci sequence from 0,1...n<=max
def __init__(self, max):
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
但是,如果我将 self.a 和 self.b 的初始化从iter移到init似乎(以我的简单理解)以完全相同的方式工作。
class fibit: # iterate through fibonacci sequence from 0,1...n<=max
def __init__(self, max):
self.a = 0
self.b = 1
self.max = max
def __iter__(self):
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
那么哪一种是推荐的方法呢?
谢谢。:)