东东枪 发表于 2018-8-21 13:57:24

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

问题同标题,希望可以举例,通俗易懂的说明。

BngThea 发表于 2018-8-21 13:58:24

python中变量名只是标签而已,可以多个标签指向同一块内存(值)
new=old
意味着new和old这两个标签指向了同一块内存
所以你对new和old指向的数据进行改动,比如列表的pop,sort,reverse等操作都会对两者同时产生作用,因为他们修改了内存中的数据
而你将old重新赋值,意味着old标签指向另外一块内存,从此old和new再无瓜葛

东东枪 发表于 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是吗?

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



BngThea 发表于 2018-8-21 14:27:22

东东枪 发表于 2018-8-21 14:18
非常感谢你的回答:
所以
old=10


java不是很了解,但是python中的函数传递都是传引用,而且可以根据标签方式来对容器类型对象进行合理操作
页: [1]
查看完整版本: Python问题请教:如何理解Python中的变量名和值的关系,与java中有什么不同