python之函数默认参数的坑
坑
当你的默认参数如果是可变的数据类型,你要小心了
例题
# 正常没毛病的操作
def func(a,b=False):
print(a)
print(b)
func(1,True) # 在实参角度,传的的True对默认关键字参数进行了修改操作
# 结果
1
True
# 坑来了
# 就是当你的默认参数如果是可变的数据类型,你要小心了
# 也就是 def func(a,b=[1,2,3,4])这个时候要小心b列表中的内容
def func(a,1i=[]):
li.append(a)
return 1i
print(func(1)) # 输出结果 [1]
print(func(2)) # 输出结果 [1,2]
print(func(3)) # 输出结果 [1,2,3]
# 总结
# 就是列表中的内容会一直增加,不会被替换,结果 [1,2,3] l = []中的内容不会随着函数的结束而消失