一个有趣的python小问题

本文通过一个具体的Python函数实例,探讨了默认参数列表在多次调用中可能引发的问题,并解析了背后的原因。深入理解函数参数的工作机制对于避免编程陷阱至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天逛我大CSDN时发现了一个很有趣的小问题,拿出来与大家分享一下。

def f(x, l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)
        
f(2)
f(3, [3,2,1])
f(3)

在jupyter上运行以上代码,会出现什么结果,你们猜一下。

A:

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 4]

B:

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]

选一下吧。

正确答案是B,为什么呢。

首先,这三个函数是放在一起的,而不是分别运行的啊,这一点要注意。

其次,第二个函数,没有在第一个l列表的基础上进行添加操作,是因为人家传了第二个参数,而第三个则默认还是使用第一个函数建立的列表,所以会出现这种情况。

其实,我感觉这个小问题很值得研究啊,虽然不知道有哪些可以研究的(希望路过的大神不吝赐教)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值