python - python是否重复计算函数的值在一个公式中出现多次

标签 python

在python中,如果我有一个函数

f(x)=(g(x)+1)(g(x))

g(x) 是之前定义的,需要时间来计算。

像这样的事情

def g(x):
  return value
def f(x):
  return (g(x)+1)*(g(x))

当我计算 f(x) 时,将 g(x) 代入等式时,python 会计算 g(x) 两次吗? 如果确实计算了两次,人们通常如何在 python 中处理它?<​​/p>

最佳答案

根据函数g(x),是的,每次调用都会重新计算。内存函数 (Wikipedia) 只需要为 x 的给定值计算一次值。例如:

def g(x):
    if cache[x]:
        return cache[x]
    else:
        result = # calculate g(x)
        cache[x] = result
        return cache[x] # or return result

关于python - python是否重复计算函数的值在一个公式中出现多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935418/

相关文章:

python - 如何旋转网格中的点并保持正交性

python atexit错误: the first argument must be callable

Python mysqldb 错误关闭连接

python - 如何在数据框中存储的一系列数字中找到所有可能的女儿

python - 血管图像处理问题

python - pandas any 中 Axis 的定义

Python:用读入文件替换字符错误

python - Numpy bool 逻辑(检查元素是否不是什么)

python - 如何并排打印我的 ASCII 卡?

python - 检查Python中的输入和输出文件是否相同