python函数是通过引用传递的吗?

时间:2017-01-26 21:35:43

标签: python function pass-by-reference

我被告知python函数是通过引用传递的,这是一个例子

def append_element(some_list, element):
    some_list.append(element)

data = [3, 1, 2]
append_element(data, 4)

print(data)
[3,1,2,4]

原来的data已经改变了。让我感到困惑的是

y = sorted(data)
print(y)
[1,2,3,4]
print(data)
[3,1,2,4]

如果python函数确实通过引用传递,那么为什么在这个函数调用sorted()后,data没有改变?

1 个答案:

答案 0 :(得分:2)

sorted()的输出是一个不同的全新列表。它与论证不一样。