我想在python中模拟我的问题,我是python编程的新手。只是想检查是否有办法避免多次调用相同的函数(每次返回相同的值)。
例如:
def fun():
return calling_another_fun()# return always same value say eg: 200
var = fun() var1 = fun() var2 = fun()
print "calling first time"+str(var) print "calling second time"+str(var1) print "calling third time"+str(var2)
是否有办法在一个地方调用fun()和
答案 0 :(得分:1)
分配可以将同一个对象绑定到多个名称。
a = b = c = 42
请注意,所有名称都指向同一个对象,因此如果该对象是可变的,那么对于每个名称,它似乎都会更改。
>>> a = b = []
>>> a.append(None)
>>> b
[None]
答案 1 :(得分:1)
手动缓存返回值的一种非常简单的方法是:
def my_func():
if my_func._retval is None:
my_func._retval = ... # compute your return value here
return my_func._retval
my_func._retval = None
一般来说,你要找的是记忆。有different approaches来执行此操作,具体取决于查询的复杂程度; python 3具有非常有用的lru_cache。