我有一个类和它的方法。在执行期间,该方法会重复多次。该方法使用一个
numpy
数组作为临时缓冲区。我不需要在方法调用之间存储缓冲区内的值。我应该创建一个成员实例数组来避免在方法执行期间出现时间泄漏吗?我知道最好使用局部变量。但是Python是否足够聪明,只分配一次数组的内存?class MyClass:
def __init__(self, n):
self.temp = numpy.zeros(n)
def method(self):
# do some stuff using self.temp
或者
class MyClass:
def __init__(self, n):
self.n = n
def method(self):
temp = numpy.zeros(self.n)
# do some stuff using temp
更新:将np.empty
替换为np.zeros
np.empty
是一种惰性分配器。我的猜测是你需要尝试两种方式,看看在样本操作中是否有时间差异。 - hpaulj