相比于第一次测试,第二次测试没有在def下面一行加上global list3,可是输出结果一致。困惑我的是如果不在def里加上global list3,那么接下来的print(转换后list1,list3 )中list3的值不应该是主函数中原来的值吗?为什么会自动转变为修改后的结果?
问题太长了,放在下面图片下了
相比于第一次测试,第二次测试没有在def下面一行加上global list3,可是输出结果一致。困惑我的是如果不在def里加上global list3,那么接下来的print(转换后list1,list3 )中list3的值不应该是主函数中原来的值吗?为什么会自动转变为修改后的结果?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 於黾 2021-11-26 16:17关注
list是可变值类型,对应java和c里面的引用类型
list3对象本身不能被重新赋值,赋值了就变成局部变量了,不赋值就是全局变量
但只要它本身不被重新赋值,它的元素都是指向全局变量list3的地址,修改了它就等于修改list3本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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代码 关于微分方程和嵌套的分段函数。