Python编程之基础知识练习_001
练习内容:
实现一个类用于Fibonacci数列的计算。
该类具备的功能:
(1)支持计算结果的缓存
(2)支持迭代
(3)支持索引
1.实现代码如下:
class Fibonacci: def __init__(self): self._result = [0, 1, 1] def __len__(self): return len(self._result) def __call__(self, n=0): if n < 0: raise IndexError("Index must nonnegative.") _length = len(self) if n < _length: return self._result[n] else: for i in range(_length, n + 1): self._result.append(self._result[-2] + self._result[-1]) return self._result[-1] def __getitem__(self, item): return self.__call__(item) def __iter__(self): return iter(self._result) def __str__(self): return str(self._result) __repr__ = __str__
2.简单的测试代码:
# Test fib = Fibonacci() print(fib(12)) print(fib[3]) print(fib._result) for i, v in enumerate(fib): print((i, v))