2

这是我的问题。很抱歉之前的帖子根本不清楚。

所以这里有一个例子:

import numpy as np

x=np.arange(1,100,1)
y=z=x*0

def func(h,g):
    for i in range(1,50):
        h[i]=i+1
        g[i]=i*2

func(z,y)
print z-y

在这个例子中zy给出相同的答案,但为什么会这样呢?在函数中它不应该给出相同的答案吗?

4

1 回答 1

4

您正在设置yz指向同一个对象。这一行:

y=z=x*0

创建一个新对象 x*0,然后设置 y 和 z 来引用它。因此,h并且g在您的函数中是同一个对象,并且更新会相互覆盖。

如果您想拥有两个独立的对象,请独立创建它们:

y=x*0
z=x*0
于 2013-08-13T16:54:42.580 回答