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))

 

posted @ 2018-05-11 12:21  Orcsir  阅读(162)  评论(0编辑  收藏  举报