1. 如果传入的参数是不可变类型,则函数中对其进行更改时不影响函数外部该变量的值
def test(a):
a += 1
return a
a = 10
b = test(a)
print(a)
print(b)
10
11
2. 如果传入的参数是可变类型,则函数中对其进行更改时会影响函数外部该变量的值
def test(a):
# a.append(7)
a += [7]
return a
a = [3,5,10]
b = test(a)
print(a)
print(b)
[3, 5, 10, 7]
[3, 5, 10, 7]
3. 注意a.append()和a += [7]都是对a本身进行修改;a = a + 7则不是,这是创建了一个局部变量a覆盖原理的a。
def test(a):
a = a + [7]
return a
a = [3,5,10]
b = test(a)
print(a)
print(b)
[3, 5, 10]
[3, 5, 10, 7]