python3默认参数陷阱

默认参数的值是容器类型,每次调用函数的时候,如果不传值,会用公用资源池

def func(k, v=[]):
    v.append(k)
    print(v)


func('wt')
func('ab', [])
func('cd')  # 占用wt的内存
def extend_list(v, li = []):
    li.append(v)
    return li


list1 = extend_list(10)

list2 = extend_list(20, [])
print(list2)
list3 = extend_list(30)     # 占用的是list1的内存
print(list3)
print(list1)
原文地址:https://www.cnblogs.com/wt7018/p/10856716.html