列表.append()方法,可以修改默认参数
一段有趣的小代码:
def append(n,alist=[]):
alist.append(n)
return alist
l1 = append(0) # l1 = [0]
l2 = append(1) # l2 = [0,1]
l3 = append(2) # l3 = [0,1,2]
在第2,3次使用append()函数后l2,l3的值变为了[0,1],[0,1,2],乍一看似乎与原来的函数定义有有冲突,默认alist参数不是应该是[]吗?为什么会有这样的结果?
原因是在函数中的alist.append()方法对默认参数进行了修改。这体现了.append()方法是对列表本身进行操作,修改的是列表本身。