【问题标题】:why do these two functions not return in same form [duplicate]为什么这两个函数不以相同的形式返回[重复]
【发布时间】:2017-03-12 06:32:35
【问题描述】:

例如,

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不会改变。

为什么会这样?

【问题讨论】:

  • 列表是可变的,整数不是。

标签: python


【解决方案1】:

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

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

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

您可以查看web 了解更多信息。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多