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)

 

posted @ 2019-05-13 15:08  市丸银  阅读(120)  评论(0编辑  收藏  举报