python可变类型做默认参数

python可变类型做默认参数

下面代码的输出结果是什么


def extendlist(val, list=[]):
    list.append(val)
    return list


list1 = extendlist(10)
list2 = extendlist(123, ['a', 'b', 'c'])
list3 = extendlist('a')

print(list1)  
print(list2)  
print(list3)  

结果

[10, 'a']
['a', 'b', 'c', 123]
[10, 'a']

解析
extendlist函数有两个参数,一个val,一个list默认为空列表
list1和list3没有对第二个参数list赋值,所以都是用了默认的空列表,
虽然这个函数执行了3次但是这个默认列表的内存地址是不变的,
当可变类型作为参数的默认值时你可以把它当做一个全局变量就可以了,人如果不对这个默认参数赋值他就一直指向这个全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值