如何避免多次调用python相同的函数?

时间:2015-09-26 06:58:06

标签: python

我想在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()和

2 个答案:

答案 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