zoukankan      html  css  js  c++  java
  • 针对迭代程序效率低下-装饰器函数

    因为在做迭代时,很多函数值计算都是重复的,导致内存消耗过大,资源冗余过多,程序执行速度效率低下.所以我们引用装饰器函数解决这个问题.

    以斐波那契数列为例, 因为n的值总为 n-1 和 n-2 的值的和(n>=2),所以为函数添加缓存cache,我们每次执行程序时都先查找缓存中是否有该数字对应的函数,如果有则直接使用,不用继续计算.

    eg:

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

    @装饰器函数
    @memo
    def fibonacci(n):
    if n <= 1:
    return 1
    return fibonacci(n-1)+fibonacci(n-2)


    这样直接在函数上方添加装饰器函数,我们不需要修改已写函数,可以直接使用.
    print(fibonacci(40))
  • 相关阅读:
    4.23上机练习
    4.17java作业
    4.16java作业
    leetcode 189
    leetcode 172
    leetcode 171
    leetcode 169
    win10内网外网智能访问
    leetcode 168
    leetcode 165
  • 原文地址:https://www.cnblogs.com/LinuxSuDa/p/8296442.html
Copyright © 2011-2022 走看看