关于python定义函数中的形参-默认参数的陷阱

如果默认的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值就共用这个数据类型的资源。
例子1:
def wahaha(li = []):
li.append(1)
print li

wahaha() #[1]
wahaha() #[1,1]
wahaha() #[1,1,1]
wahaha() #[1,1,1,1]

例子2:
def qqxing(k,dic = {}):
dic[k] = ‘v’
print dic

qqxing(1) #{1: ‘v’}
qqxing(2) #{1: ‘v’, 2: ‘v’}
qqxing(3) #{1: ‘v’, 2: ‘v’,3:‘v’}

你可能感兴趣的:(python语法)