Python默认参数是可变类型的“坑”的理解

在学习Python时,遇到关于默认参数为可变类型(如list)的问题。函数调用时,默认参数的值并非每次都重新计算,而是只在函数定义时计算一次。这导致在多次调用中,默认参数的可变状态会被保留,从而产生意外的副作用。通过实例和《Python3-cookbook》中的例子,进一步解释了默认参数的内存管理机制,即在堆中保存的默认参数值在函数结束时不被清除,下次调用时仍然生效。
摘要由CSDN通过智能技术生成

在学习廖雪峰的Python教程,函数的默认参数部分,遇到了这样的问题:
当默认参数的值为可变类型例如list时

def add_end(L=[]):
    L.append('END')
    return L

使用默认参数多次调用会出现

>>> add_end()
['END']
>>> add_end()
['END', 'END']
>>> add_end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值