在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/