如果默认值参数是一个可变的数据类型, 如果有人调用的时候改变了他. 其他位置看到的也跟着改变了
如果默认值参数是一个可变的数据类型, 如果有人调用的时候改变了他. 其他位置看到的也跟着改变了
1 def extendList(val, list=[]): 2 list.append(val) 3 return list 4 list1 = extendList(10) 5 print('list1=%s' % list1) # list = [10] 6 7 list2 = extendList(123, []) 8 print('list2=%s' % list2) # 9 10 list3 = extendList('a') # list = [10, 'a'] 11 print('list3=%s' % list3) 12 13 print('list1=%s' % list1) 14 print('list2=%s' % list2) 15 print('list3=%s' % list3)
结果:
list1=[10]
list2=[123]
list3=[10, 'a']
list1=[10, 'a']
list2=[123]
list3=[10, 'a']