鱼C论坛

 找回密码
 立即注册
查看: 3213|回复: 3

[已解决]Python问题请教:如何理解Python中的变量名和值的关系,与java中有什么不同

[复制链接]
发表于 2018-8-21 13:57:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题同标题,希望可以举例,通俗易懂的说明。
最佳答案
2018-8-21 13:58:24
python中变量名只是标签而已,可以多个标签指向同一块内存(值)
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-8-21 13:58:24 | 显示全部楼层    本楼为最佳答案   
python中变量名只是标签而已,可以多个标签指向同一块内存(值)
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-8-21 14:18:14 | 显示全部楼层
BngThea 发表于 2018-8-21 13:58
python中变量名只是标签而已,可以多个标签指向同一块内存(值)
new=old
意味着new和old这两个标签指向 ...

非常感谢你的回答:
所以
old=10
new = old
只是把new、old这两个标签都与 10 这个值建立了关联
如果执行了
old=old-1
那么new的值也会变成9是吗?

为了加深记忆,那么像这种仅关联标签的方式,在实际应用中有什么场景可以使用到?可以举例说明吗?



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 14:27:22 | 显示全部楼层
东东枪 发表于 2018-8-21 14:18
非常感谢你的回答:
所以
old=10

java不是很了解,但是python中的函数传递都是传引用,而且可以根据标签方式来对容器类型对象进行合理操作
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表