这甚至难以解释;如果听起来令人困惑,我会提前道歉。
在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能够进入一个以最简单的方式导入和调用的库。感谢。