【发布时间】:2013-01-28 22:24:04
【问题描述】:
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)
这段代码在我的笔记本电脑上运行很慢, 但如果我将名称 fib1 更改为 fib,那么一切正常……有人知道原因吗?谢谢!
【问题讨论】:
-
向您的 fib() 函数添加一些打印内容,看看这些调用对您是否有意义。
-
一个很好的方法是使用装饰器:ujihisa.blogspot.com/2010/11/…
标签: python