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

 

posted @ 2020-07-29 17:02  奔奔-武  阅读(191)  评论(0编辑  收藏  举报