为什么这两个函数不以相同的形式返回

时间:2016-10-29 15:39:29

标签: python

例如,

def T(x):
for i in range(1,len(x)-1):
        x[i]+=x[i-1]+2

def f(x):
    x=x+2
    return x

x=[1,2,3,4,5]
;T(x)
;print(x)
[1, 5, 10, 16, 5]

变量x在这种情况下会发生变化,但是,

x=3
;f(x)
;print(x)
x=3
在这种情况下,

x不会改变。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

一般来说,可变对象作为引用传递,而不可变对象通过值传递。

获得与(1)相同的结果:

x = 3
x = f(x)
print(x)

您可以查看此web以获取更多相关信息。