SL = np.zeros((N+1))
DDB, SOYD, MACRS, MEX, book_value = SL, SL, SL, SL, SL
print("MEX: ",MEX)
book_value[0] = inv_fci
DDB[0] = 0
print("MEX: ",MEX)
SL[1:m+1] = inv_fci/m
print("MEX: ",MEX)
因此,我制作了一个numpy数组SL,它基本上是(N + 1)个零,然后将其分配给其他数组:DDB,SOYD,MACRS等。奇怪的是,在对SL做完某些操作之后,所有数组完全按照SL更改的方式更改。没有被触及的MEX变得与SL完全一样,即具有m个条目的数组,都等于inv_fci(预定的双变量)。经过一些测试,当我更改SL时,甚至其他阵列也在更改。
为什么在更改SL时这些数组会更改?
DDB, SOYD, MACRS, MEX, book_value = SL, SL, SL, SL, SL
这使得DDB
,SOYD
,MACRS
,MEX
并book_value
指向同一个对象。如果修改了该对象,则所有变量都将指向同一修改后的对象。
一种可能的解决方案是创建SL的副本,然后为每个变量分配一个不同的副本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句