函数的参数传递,本质上传递的是引用:
参数x是一个新的引用。调用函数f时,a作为数据传递给函数,因此x会指向a所指的对象,也就是进行一次赋值操作。⬅️不可变对象
分割线后是引用操作可变对象,会影响其他的引用。⬅️可变对象
def f(x):
print(id(x))
x = 100
print(id(x))
a = 1
print(id(a))
f(a)
print(a)
print("-----分割线-----")
def f(x):
x[0] = 100
print(x)
a = [1,2,3]
f(a)
print(a)
——————————————————————————
4338196744
4338196744
4338199912
1
-----分割线-----
[100, 2, 3]
[100, 2, 3]