这是python 2.7.10。
我举一个我要问的例子。我通过函数交换数组的第一个和第二个元素。
#!/usr/bin/python
def change(array):
array2 = array
array2[0], array2[1] = array2[1], array2[0]
return array2
a = [100, 200, 300]
print "Original array: "
print a #[100, 200, 300]
print "Feeding to some function"
b = change(a)
print "Original array becomes: "
print a #[200, 100, 300] <- Unexpected
print "Result of my function: "
print b #[200, 100, 300]
我认为该功能不应改变馈入参数的值/状态。换句话说,在运行函数a
之后,数组[100, 200, 300]
应该仍为change
。
我的问题如下:
__main__
相关。 对我来说,python的作用如下:
输入 - &gt;功能 - &gt;输出+输入_altered
但我认为它应该像:
输入 - &gt;功能 - &gt;输出+输入
答案 0 :(得分:0)
如果您不想更改原始对象,请使用change(a[:])
或change(a.copy())
。