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 = []中的内容不会随着函数的结束而消失

posted @ 2019-06-19 20:45  爱咋闹  阅读(387)  评论(0编辑  收藏  举报