【发布时间】:2021-05-06 19:25:32
【问题描述】:
举个简单的例子:
def change(a,b=[]):
a+=1
b.append(1)
A = 1
B = []
猜猜如果我们:
change(A,B)
print(A, B)
2 [1]
函数外的参数B,变了!
但是为什么 b.append(1)会影响函数外的参数呢?
【问题讨论】:
-
这是一个众所周知的问题——已经被问过上千次了——你可以在
Python mutable list as argument上快速搜索~ -
您可以通过 pythontutor.com 等可视化平台运行代码以查看发生了什么。
标签: python-3.x list append