函数的参数传递,本质上传递的是引用:
参数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]

本文探讨了Python中函数参数传递的本质,解释了如何通过引用传递不可变对象(如整数)和可变对象(如列表)。在不可变对象中,函数内的修改不会影响原始值,而在可变对象中,函数内部的改变会影响到原始引用。通过示例展示了函数如何影响传入的列表及其其他引用。
1125

被折叠的 条评论
为什么被折叠?



