在python中赋值后变量地址_Python学习:解析变量赋值及数据存放地址

本文探讨Python中变量赋值的原理,解释了变量如何指向内存地址而非申请新的内存空间。通过示例展示了数字、列表等不同类型的赋值变化,以及`deepcopy()`、切片操作与`extend()`、`+=`、`=`+的不同效果。同时对比了Python与C语言中变量赋值的差异,强调Python中变量名是对对象的引用。
摘要由CSDN通过智能技术生成

Python会将数值如1、2、3、4预先存放在固定地址的内存中,在将数值赋值给变量时,并不给变量申请内存空间,只是给变量一个内存地址的指向(类似C的指针),变量变化时,也只改动变量的指向,如:

x =12

y = 13

printx, id(x)

printy, id(y)

y = x

printy, id(y)

x = 24

y = 25

printx, id(x)

printy, id(y)

输出为

>>>

1230661984

1330661960

1230661984

2430661696

2530661672

>>>

可以看出,x、y赋值变化是,他们指向的内存地址会变化,但是具体到某个数值对应的地址不变,如:数字‘12’对应的ID始终为‘30661984’

——————————————

另一个示例程序:deepcopy() 和 [:]

#coding:utf-8

a = [1, 2, 3]

b = a

a.append(4)

print id(a), a, id(b), b

#若不想a,b的ID相同,可使用deepcopy()或者[:]

from copy import deepcopy

a = [1, 2, 3]

b = deepcopy(a)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值