我认为这实际上是一个简单的问题。 SCI。人,但我不是一个comp。 SCI。程序,不记得任何术语。
我已经创建了一大堆函数,这些函数基本上是嵌套的,用于创建一个大的numpy记录数组。
data = func_to_make_large_structure()
现在,当我像这样分配data
时,它是否在函数返回后存储大型结构,或者每次调用函数时都会调用并重新计算?
制作结构需要30秒,这比通过使用对象存储数据在OO中创建类似结构所花费的时间要长得多。
此外,我对数据进行了大量处理,这比OO表单花费了更长的时间。
这是因为每次调用data
时都会重新计算数据吗?
如果是这样,我如何在不调用函数的情况下只存储数据?
答案 0 :(得分:1)
调用函数后,变量data
不再与函数有任何关联,因此如果再次调用func_to_make_large_structure()
,它将再次执行所有相同的计算。避免这种情况的技术称为memoization,在this question中描述了在Python中使用它的技术。
但是,如果您在初次调用后询问是否每次访问func_to_make_large_structure
变量时调用data
,那么就不会。