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)
解析:
如果默认参数被覆盖重写则不会有任何问题, 因为未被使用
如果默认参数被启用, 则默认参数如果为可变类型, 则只生效一次,
后续的改动都会体现在默认参数中, 相当于默认值被覆盖修改






评论(0)


暂无数据