答案中的self.numbers实际上是给Fib增加了一个属性来传递这个Fib数列是吗?那么还有其他的办法来传递数列吗?
class Fib(object): def __init__(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b self.numbers = L def __str__(self): return str(self.numbers) __repr__ = __str__ def __len__(self): return len(self.numbers) f = Fib(10) print f print len(f)
以上是答案的代码,我尝试过再用一个变量FibSum来传递,但是失败了。
class Fib(object): FibSum = [] def __init__(self, num): L = [0] a = 0 b = 1 i = 0 while i < num-1: L.append(b) a,b = b, a+b i += 1 FibSum = L