Discuss / Python / 对可变对象作为默认参数的一种理解

对可变对象作为默认参数的一种理解

Topic source

清寒藏韵

#1 Created at ... [Delete] [Delete and Lock User]

所谓默认参数,只是预先在内存中给该参数赋予了一个初始值,如果后续不给默认参数赋值,则将这个初始值赋给默认参数。如果默认参数是一个可变对象,则在后续给默认参数赋值后,会用我们的赋值覆盖初始值

当不提供默认参数(即默认参数的值为空)时,python调用的是内存里默认参数这个变量【最后】指向的赋值,因此对于可变对象,给默认参数赋值大于等于二次之后,如果不提供默认参数,默认参数指向的也是上一次的赋值,而非最初的赋值


  • 1

Reply