Lucky_Cheng7 2021-11-26 16:13 采纳率: 85.7%
浏览 22
已结题

问题太长了,放在下面图片下了

img

img


相比于第一次测试,第二次测试没有在def下面一行加上global list3,可是输出结果一致。困惑我的是如果不在def里加上global list3,那么接下来的print(转换后list1,list3 )中list3的值不应该是主函数中原来的值吗?为什么会自动转变为修改后的结果?

  • 写回答

1条回答 默认 最新

  • 於黾 2021-11-26 16:17
    关注

    list是可变值类型,对应java和c里面的引用类型
    list3对象本身不能被重新赋值,赋值了就变成局部变量了,不赋值就是全局变量
    但只要它本身不被重新赋值,它的元素都是指向全局变量list3的地址,修改了它就等于修改list3

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月27日
  • 已采纳回答 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。