python中默认值如果是可变的数据类型的坑
如下代码:
# 默认值如果是可变的数据类型. 每次使用的时候都是同一个 def extendList(val, list=[]): print(id(list)) list.append(val) return list list1 = extendList(10) list2 = extendList(123, []) list3 = extendList('a') print('list1=%s' % list1) print('list2=%s' % list2) print('list3=%s' % list3)
运行结果:
2604160448712 2604160547848 2604160448712 list1=[10, 'a'] list2=[123] list3=[10, 'a']