一、错误
二、警告
2.1 Default Argument Value is mutable
参考 xbs118的博文 Pycharm警告:Default Argument Value is mutable
我们在Python里写函数时,常常会给一些参数赋初始值。我们把这些初始值叫作Default Argument Values。
一般情况下,我们可以很*的给参数赋初值,而不需要考虑任何异常的情况或者陷阱。
但是当你给这些参数赋值为可变对象(mutable object),比如list,dictionary,很多类的实例时,那么你要小心了,因为函数参数
的初值只能被计算一次(在函数定义的时间里)。即在第二次即之后的函数调用,参数的默认值是最近一次赋值:参数列表赋值或者函数内赋值
既然会出现这样的小陷阱,那么我们怎么来避免呢?下面的代码将消除这个小陷阱。
当然,我们也可以给my_list赋可变对象,然后将my_list在使用之前初始化。代码如下:
推荐第一种方式:更符合一般习惯。