输出结果为何不是【1】,而是【1,1】?

img

https://docs.python.org/zh-cn/3.8/tutorial/controlflow.html#default-argument-values

img

列表是可变对象,这默认值只会初始化一次。第一次调用时列表为空,然后你给他放入了1,第二次调用时这个列表就是[1]了,再放入一个,它就变成[1, 1]。由于两个ls指的都是同一个内存地址,所以两次调用返回的ls指向的都是这个列表,你用append方法给这个列表添加值,并没有重新指向新的内存地址(使用ls=ls+[1]的话会改变,这样两个ls指的就是不同的实例了),所以你打印两次都是同一个列表,即[1, 1]

分别是a b两次调用,都是添加1至ls列表里面, a=1,b=1,print() 两个列表的内容所以是1,1

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632