热线电话:13121318867

登录
2020-08-16 阅读量: 720
默认参数传参陷阱

非常Tricky的事情:


def extend_list(v, li=[]):

li.append(v)

return li



list1 = extend_list('a')

print(list1)

list2 = extend_list(123, [])

print(list2)

list3 = extend_list(10)

print(list3) # [10, 'a']

list4= extend_list(999)

print(list4)




解析:

如果默认参数被覆盖重写则不会有任何问题, 因为未被使用

如果默认参数被启用, 则默认参数如果为可变类型, 则只生效一次,

后续的改动都会体现在默认参数中, 相当于默认值被覆盖修改


68.9602
0
关注作者
收藏
评论(0)

发表评论

暂无数据