python 3:在多次调用的函数内设置一次变量

时间:2018-04-20 11:00:23

标签: python python-3.x

这甚至难以解释;如果听起来令人困惑,我会提前道歉。

在Python 3中我有一个函数:foo()。

我第一次调用这个函数时,需要进行一些复杂的计算,每次运行程序时只需要进行一次。然后需要使用这些计算的结果。我希望那个叫foo的人不必为这一切烦恼。所以他们只需要在需要时多次调用foo()。无需知道第一次有一些额外的工作正在完成。

从某种意义上说,我需要foo来设置一些持久变量。持久性并不意味着从一个程序实例到另一个实例,而是从一个函数实例到另一个实例。

也许我可以设置一个在函数内定义的全局变量,但这不是很好的样式。程序也需要非常快,所以我不想将它存储在磁盘上。我有哪些替代方案?

foo_variable=""

def foo():
     global foo_variable
     if foo_variable=="":
         foo_variable=slow_calculations_only_to_be_done_once()
     return fast_calculations_using_foo(foo_variable)

print (foo())
print (foo())

最终我希望foo能够进入一个以最简单的方式导入和调用的库。感谢。

0 个答案:

没有答案