智医小光 2022-01-29 18:09 采纳率: 100%
浏览 43
已结题

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

img

  • 写回答

3条回答 默认 最新

  • python xxxyyyxxxyyy 2022-01-29 20:11
    关注

    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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 已采纳回答 1月29日
  • 创建了问题 1月29日