带有memoization的Fibonacci数字在Python中运行缓慢?

Ang*_*Ang 2 python

def fib(n):
    if n == 1:
        return 0
    if n == 2:
        return 1
    return fib(n-2) + fib(n-1)


def memo(f):
    cache = {}
    def memoized(n):
        if n not in cache:
            cache[n] = f(n)
        return cache[n]
    return memoized

fib1 = memo(fib)
Run Code Online (Sandbox Code Playgroud)

这段代码在我的笔记本电脑上运行得很慢,但如果我将名称fib1更改为fib,那么一切正常......有谁知道原因?谢谢!

Mar*_*som 5

fibfib不是fib1.如果memoized版本具有不同的名称,则不会使用它.