社区
脚本语言
帖子详情
python 值相同变量名不同,内存地址相同吗?
_firemoon
2017-09-23 07:21:18
如图,为什么有的相同,有的不同,原因是什么,有没有阈值
...全文
1863
7
打赏
收藏
python 值相同变量名不同,内存地址相同吗?
如图,为什么有的相同,有的不同,原因是什么,有没有阈值
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
爱奔跑的孩子
2019-11-16
打赏
举报
回复
python缓存了-5~~256 的整型数组 同意楼上
QuantumEnergy
2017-09-29
打赏
举报
回复
建议去看看python的缓存机制
G_scsd
2017-09-27
打赏
举报
回复
在python3.0中,python中缓存了0到255的数字,所以在这范围内的字面值的变量的地址都一样
CDSoftwareWj
2017-09-25
打赏
举报
回复
楼上说的比较清楚了,python会提前分配一些常用的值来提高效率,具体可以看《Python 源码剖析》 里面讲的非常清楚
python_T
2017-09-24
打赏
举报
回复
小整数对象池:python在执行的时候,为了节约空间,帮我们创建好了小整数对象池,[-5~256],都是固定的地址,不管你用不用,都会存在。 比如,a=5,b=5,id(a)和id(b)的地址都是小整数池中固定已经存在的地址,所以相等 但如果,a=1000,b=1000,这时会给a一个地址,也会给b一个地址,但他们都不相等。 希望可以帮助你~
混沌鳄鱼
2017-09-23
打赏
举报
回复
1
Python 解释器对于数字有个小数字缓存池:-5~257, 原因是:地址数据最少是32位的,现在都是64位了,如果单独为一个小整数创建一个对象,10个地方用到这个小整数,那么就会在内存中创建10个存储的内存地址的空间,地址占用的数据长度比数据本身还大这样非常不划算。而有这个缓存池,python解释器内部就会共享这个小整数对象,不去开内存空间。从而减少内存的使用率,降低浪费。) 字符串也有内存池,给了2k空间,python内部有算法,按照内部权重排列,如果级别高了就把你放入内存。列表、字典都有。
chuifengde
2017-09-23
打赏
举报
回复
常数超过256,id就不一样了
python
中
值
一样
变量名
不同
那么内存中的地址
相同
吗
跟Java一样, 为提高内存利用效率,
Python
解释器在运行程序时会建立一个共享对象池, 将常用的小整数(不大于256)都放在这个池子里. 创建不大于256的整数对象时, 直接从池子里面取, 而不是分配新的内存空间创建新的对象. 所以对于不大于256的整数,
相同
值
的整数对象其
内存地址
都一样 ...
关于
python
容器(dict、set、list、tuple) 内容
相同
的两个变量的
内存地址
是否
相同
关于
python
容器(dict、set、list、tuple) 内容
相同
的两个变量的
内存地址
是否
相同
结论:dict、set、tuple这三个类型,内容
相同
的两个变量的指向的
内存地址
相同
list 内容
相同
指向的两个变量的
内存地址
不同
,具体如下代码所示。 print('----dict----') se2 = {3: 'haha', 4: 'haha', 5:'haha'} se1 = {3: 'haha', 4: 'haha', 5:'haha'} print(id(se1)) print(id(se1)
Python
不同
变量
相同
值
会指向同一个内存
出于对性能的考虑,在
python
IDLE中,数字位于[-5,256],和所有的字符串,
值
相同
的,
不同
变量会指向同一个内存。 >>> c=257 >>> d=257 >>> c is d False >>> c=256 >>> d=256 >>> c is d True >>> c=-5 >>> d=-5 >>> c is d True #下面是
Python
中变量在内存的存储与地址变化详解(深浅拷贝,
值
/引用传递、可变不可变数据类型)
学习
Python
首先我们要知道
Python
变量保存的是
值
引用 也可以说:变量是对内存及其地址的抽象
Python
:一切变量都是对象 变量的存储,采用了引用语义的方式,存储的只是一个变量的
值
所在的
内存地址
,而不是这个变量的
值
本身 见下图 采用这种方式:变量所需的存储空间大小一致,因为变量只是保存了一个引用。也被称为对象语义和指针语义。变量的每一次初始化,都开辟了一个新的空间,将新内容的地址赋
值
给变...
python
变量与内存
一、变量与内存的结构关系
python
的变量类似于标签的作用,内容散布于内存中,为了方便管理,用变量把这些内存中的内容标示出来。如下图所示: 一般
python
的内存结构以64字节为一个单位,随便在
python
中申明变量abcdef,并赋上
值
,对应的内存结构大致是这样: 需要注意的是,分配出来的内存可能是连续的,下一个内存比上一个内存多64个字节,也可能是不连续的,为64个字节的倍数。 这样就可以看出来,变量a或是b只是一个标签,指向实际的内容,方便人类识别他们代表什么东西。 如果把a指向的
值
赋
脚本语言
37,744
社区成员
34,212
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章