Python:函数默认值的作用域【__defaults__】【__kwdefaults__】
例子:引入def foo(abc=[]): abc.append(200) print(abc)foo()foo()结果:[200] [200, 200]第二次调用为什么问什么打印的是[ 200,200],而不是[ 200 ]?因为函数即对象,python把函数的默认值放在了属性中,这个属性就伴随着这个函数对象的 整个生命周期,和abc这个变量没有关系,abc调用玩就消失了 可查看foo.__defaults__属性查看例子:函数值的默认值是可变类型