Ptyhon 变量的赋值详解

本文详细解析了Python中固定变量与可变变量赋值时的内存地址变化规律,通过实例展示了不同类型的变量在重新赋值或修改时,其内存地址如何变化。

1、固定变量赋值

Ptyhon 变量的赋值详解
图1
Ptyhon 变量的赋值详解
图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、可变变量赋值
Ptyhon 变量的赋值详解
图3
Ptyhon 变量的赋值详解
图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的内存地址也没改变,但是值改变了,所以,可变的变量如果只是单纯的对数据进行更改,例如增删改,都不会改变内存地址,只是值改变了。

转载于:https://blog.51cto.com/dzlly1/2335436

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值