默认参数的陷阱

# 例一
def qqxing(l = []):
    l.append(1)
    # l[k] = 'v'
    print(l)

qqxing()     #[1]
qqxing()     #[1,1]
qqxing()     #[1,1,1]

# 例二
def qqxing(k,l = {}):
    l[k] = 'v'
    print(l)

qqxing(1)    #{1: 'v'}
qqxing(2)    #{1: 'v', 2: 'v'}
qqxing(3)    #{1: 'v', 2: 'v', 3: 'v'}
# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就共用这个数据类型的资源

 

posted @ 2019-05-05 22:42  给我买AJ  阅读(90)  评论(0编辑  收藏  举报