如果默认值参数是一个可变的数据类型, 如果有人调用的时候改变了他. 其他位置看到的也跟着改变了

如果默认值参数是一个可变的数据类型, 如果有人调用的时候改变了他. 其他位置看到的也跟着改变了

 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']

猜你喜欢

转载自www.cnblogs.com/niuli1987/p/9326686.html