Python - 裝飾器實現緩存


from functools import wraps

def cache(func):
    cache = {}
    @wraps(func)
    def wrap(*args):
        if args not in cache:
            cache[args] = func(*args)
        return cache[args]
    return wrap

class Solution:
    @cache
    def fib(self, N):
        if N < 2:
            return N
        else:
            return self.fib(N - 2) + self.fib(N - 1)

或者

import functools
class Solution:
    @functools.lru_cache(maxsize=None)
    def fib(self, N):
        """
        :type N: int
        :rtype: int
        """
        if N <= 1:
            return N
        else:
            return self.fib(N - 1) + self.fib(N - 2)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM