python +=运算符

为什么两个函数的结果不一样

x = [1, 2, 3]


def f(x):
    x = x + [4]


f(x)
print(x)


def p(x):
    x += [4]


p(x)
print(x)

def f(x):
x = x + [4]
这个是在函数中创建了一个新的局部变量叫做 x,而外面打印的是全局变量x,所以全局变量x还是[1, 2, 3]
def p(x):
x += [4]
这个是对全局变量做了修改,所以变了