这是我的问题。很抱歉上一篇文章根本不清楚。
所以这是一个例子:
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
在此示例中,z
和y
给出了相同的答案,但为什么会这样?在函数中它不应该给出相同的答案吗?
答案 0 :(得分:4)
您设置y
和z
都指向同一个对象。这一行:
y=z=x*0
创建一个新对象x * 0,然后设置y和z来引用它。因此,函数中的h
和g
是同一个对象,并且更新会相互覆盖。
如果您想拥有两个独立的对象,请单独创建它们:
y=x*0
z=x*0