分配和引用按功能分配的数据

时间:2015-02-23 23:34:45

标签: python performance

我认为这实际上是一个简单的问题。 SCI。人,但我不是一个comp。 SCI。程序,不记得任何术语。

我已经创建了一大堆函数,这些函数基本上是嵌套的,用于创建一个大的numpy记录数组。

data = func_to_make_large_structure()    

现在,当我像这样分配data时,它是否在函数返回后存储大型结构,或者每次调用函数时都会调用并重新计算? 制作结构需要30秒,这比通过使用对象存储数据在OO中创建类似结构所花费的时间要长得多。
此外,我对数据进行了大量处理,这比OO表单花费了更长的时间。

这是因为每次调用data时都会重新计算数据吗? 如果是这样,我如何在不调用函数的情况下只存储数据?

1 个答案:

答案 0 :(得分:1)

调用函数后,变量data不再与函数有任何关联,因此如果再次调用func_to_make_large_structure(),它将再次执行所有相同的计算。避免这种情况的技术称为memoization,在this question中描述了在Python中使用它的技术。

但是,如果您在初次调用后询问是否每次访问func_to_make_large_structure变量时调用data,那么就不会。