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']
原文地址:https://www.cnblogs.com/benben-wu/p/13398204.html