码迷,mamicode.com
首页 > 其他好文 > 详细

Ptyhon 变量的赋值详解

时间:2018-12-26 12:27:04      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:pen   -o   RoCE   text   因此   type   ges   地址   images   

1、固定变量赋值

技术分享图片
图1
技术分享图片
图2
根据上面显示的图1,来进行图2的赋值操作,下面进行详细说明。
定义变量s1 >>>s1=‘nihao‘
定义变量s2等于s1 >>>s2=s1
打印s1的内存地址 >>>print(id(s1))
10164800
打印s2的内存地址 >>>print(id(s2))
10164800
由此可以看出,s2和s1内存地址一样,同时指向‘nihao’字符串。
给变量s1重新赋值 >>>s1=‘nihaoma‘
打印s1的内存地址 >>>print(id(s1))
10164960
打印s2的内存地址 >>>print(id(s2))
10164800
由以上两步操作可以看出,s1重新赋值以后,新的内存地址不在是原始的内存地址,而是重新指向新的‘nihaoma‘字符串所对应的内存地址上,但是,s2还是原来的内存地址,并未变化,因此s2的值也不会更改,还是‘nihao’字符串。
2、可变变量赋值
技术分享图片
图3
技术分享图片
图4
根据上面显示的图3,来进行图4的赋值操作,下面进行详细说明。
定义可变的L1变量>>>L1=[1,2,3,4,5]
将L1变量赋值给L2变量 >>>L2=L1
查看L2的值 >>>L2
[1,2,3,4,5]
查看L1的内存地址>>>print(id(L1))
9618816
查看L2的内存地址>>>print(id(L2))
9618816
由以上可以看出,赋值操作,被赋值的变量地址和赋值的变量地址是一样的。
L1新增>>>L1.append(6)
查看L1和L2的值都为
[1,2,3,4,5,6]
查看L1的内存地址>>>print(id(L1))
9618816
查看L2的内存地址>>>print(id(L2))
9618816
由以上操作可以看出,更改后的L1内存地址并未改变,但是值改变了,L2的内存地址也没改变,但是值改变了,所以,可变的变量如果只是单纯的对数据进行更改,例如增删改,都不会改变内存地址,只是值改变了。

Ptyhon 变量的赋值详解

标签:pen   -o   RoCE   text   因此   type   ges   地址   images   

原文地址:http://blog.51cto.com/dzlly1/2335436

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!