什么是默认值?什么时候需设置默认值?_Python实验室:千万别把函数默认值设为「」,这个错误你犯过吗?...

本文探讨了在Python中不应将'[]'作为函数默认值的原因,解释了默认值的存储机制,导致多次调用时共享同一列表实例。建议使用None作为默认值并在函数体内检查,避免可变对象引起的意外行为。
摘要由CSDN通过智能技术生成

前言

在Python的函数定义中,我们可以给函数形参指定一个默认值,这样,在函数使用时,如果默认值已满足我们的需求,我们就可以略过该参数;如果不满足,我们也可以指定其他值,这样可以使设计的函数兼顾易用性与灵活性。但在Python中有一点需要注意,千万不要以 '[]' 作为参数默认值。

f304792b40084615c5da7b6222785488.png

探索

为什么不能将 '[]' 作为函数默认值呢?我们从一个简单的例子开始:

48f6839a4a349f105603c0e872cf6230.png

运行结果:

[5]

[5, 5]

[5, 5, 5]

三次调用func(),期望的结果是每次都返回一个[5],但实际上返回的列表中5的个数逐次增多。这样的结果表明,似乎有个列表被缓存在函数中,每次调用的时候都会对这个列表进行操作。

我们在调用中间插入一些指定参数值的调用,看看结果如何:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值