在python中,函数的参数传递是“值传递”还是“引用传递”(加引号是因为python中关于参数传递不这么讲,但个人觉得可以这么去理解)要看传入参数是可变还是不可变对象,当传入可变对象时即为“引用传递”,传入的为不可变对象则是“值传递”,代码如下:
x = [1, 2, 3] #可变参数
print(x) #x = [1, 2, 3]
def fn(x):
x[0] = 2
print(x)
fn(x)
print(x) #x = [2, 2, 3]
x = 1 #不可变参数
print(x) #x = 1
def fn(x):
x= 2
print(x)
fn(x)
print(x) #x = 1
而关于变量是可变不可变:一般来说,常用的数据类型中,int,str,tuple是不可变类型list,dict是可变类型。