七月在线笔面试题解析1:python3函数中参数可变的理解

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]

猜你喜欢

转载自blog.csdn.net/zhuzuwei/article/details/80946328