【发布时间】:2011-09-18 02:26:12
【问题描述】:
我有一些昂贵的函数 f(x),我只想计算一次,但被频繁调用。本质上,第一次调用该函数时,它应该计算一系列 x 的值,因为无论如何它都会被积分,然后用样条插值,并以某种方式缓存系数,可能在一个文件中进一步使用。
我的想法是执行以下操作,因为它很容易实现。第一次调用该函数时,它会做一些事情,然后重新定义自己,然后再做其他事情。但是,它不能按预期工作,通常可能是不好的做法。
def f():
def g():
print(2)
print(1)
f = g
f()
f()
预期输出:
1
2
实际输出:
1
1
在 f() 之外定义 g() 没有帮助。为什么这不起作用?除此之外,我现在能想到的唯一解决方案是使用一些全局变量。或者为此编写一个类是否有意义?
【问题讨论】:
标签: python