问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python中定义:具有相同内容的字符串是同一个对象 s1 = "Welcome to Py...

发布网友 发布时间:2024-05-09 18:19

我来回答

2个回答

热心网友 时间:2024-06-02 04:03

首先查阅资料推测了一下id()函数的原理,这里顺便引入一个is的概念来方便你理解,看下面这个表达式来说明以下三者之间的关系:

(ob1 is ob2) 等价于 (id(ob1) == id(ob2))

1. id():获取的是对象在内存中的地址


2. is :比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。换句话说,就是比对2个变量的对象引用是否指向同一个对象。


3. ==:比对2个变量指向的对象的内容是否相同。

ob1 == ob2 不代表一定会 id(ob1) == id(ob2),因为id()函数不仅要求内容相同,而且要求指向同一个对象。

就是说你问的问题其实是有问题的。。

或者说你的问法:“既然是同一个对象,那为什么id会不同?”有问题,因为“他们不是同一个对象”

但这不代表你的问题因为问法不太准确就没有讨论的价值了,他的价值在于:“为什么s1与s2不是同一个对象?”

这里做另一个小测试方便理解:

>>> a = 2.5
>>> b = 2.5
>>> c = b
>>> a is c
False
>>> a = 2
>>> b = 2
>>> c = b
>>> a is c
True

发现问题没?其实这是在python中的一个优化:即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会。这说明本来字符串用这种赋值方式是应该分配不同的地址的,只不过python解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。这才是问题关键所在。


接着读资料顺便发现了一个a is b 但是 id(a) !=id(b) 的例子,当然看完后发现和这个问题没关系这里不限细说明。。


希望我的回答可以帮到你:-)

热心网友 时间:2024-06-02 04:05

python内建函数总结 1. abs(x) abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的模。例如: >>>print abs(-2,4) 2.4 >>>print abs(4+2j) 4.472135955 2. apply(function,args[,keywords]) apply()函....
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
淘宝买家差评删除流程是什么?具体步骤介绍 神拳李青多少钱 《英雄联盟》盲僧新皮肤睁眼介绍_《英雄联盟》盲僧新皮肤睁眼是什么_百 ... 至高之拳李青高清壁纸至高之拳李青 盲僧金虾皮肤致敬哥哥张国荣 新版皮肤爱的初体验 英雄联盟盲僧神龙尊者皮肤一览 QQ输入法手机版如何进入输入法设置菜单 福来者福往爱出者爱返是什么意思 电脑开机后鼠标自动移动 速度还非常快 为什么总有一大堆验证码发到我手机上。 空中悬挂一串五彩圆环,一支玩具手枪的枪管与绿环的圆心在同一水平直线... 天后吉他谱中的和弦:A E F#m C#m D A Bm E 请问大家这是一首哥是什么... 朋友总说我像一张白纸。。。 别人说我是一张纸,别人是什么就是什么,是啥意思 宝马x3是四驱吗? 宝马x3有四驱吗? 宝马x3改成适时四驱了吗? 宝马X3的运动模式是四驱吗? 从中南路到珞喻路马家庄怎么坐公交车,最快需要多久 从广埠屯到中南路怎么走 从广埠屯到中南路71号怎么坐车啊 手腕骨裂了多少天能好 闻君家海上的下一句是什么 淄博市公安森林大队是干啥呢工作的 有必要用玻璃水吗 ...镇政府和村里干部说,只给农民一平方米补偿55块都不到,你认为合理吗... 这个太平洋保险,夫妻双方没离婚,能改受益人吗? 三块六火锅是什么意思 公考面试的妆容要求有哪些? 修图师妆前乳怎么样? 小便化验中白细胞高 该唱歌了怎么翻译成英语? ...肉眼血尿3个月,伴终末血尿、尿频和尿痛,应考虑的诊断是 分手半年的男友突然找我聊天总是提到我们以前在一起的点滴,以及我说过... ...可是他总跟我说他放不下我,总跟我说我们以前的幸福时光,这是什么... 广州市番禺奥莱照明电器有限公司电话是多少? 广州市龙代光电照明有限公司怎么样? 皮肤一碰就痒属于什么类型 "感染"一词是什么意思 ...行政诉讼法》的规定,下列各项中,第一审行政案件由中级人民法院... 同床异梦2秋瓷炫哪一期同床异梦2节目简介 秋瓷炫于晓光的综艺节目是什么 秋瓷炫于晓光综艺节目叫什么 肝脏受损有多严重? ...结了痂快好了,现在痂周围变红肿起来,痂下有白色的东西, 如何考南昌大学的研究生? 河南师范大学教育技术学和北京邮电大学教育技术学研究生哪个好?_百 ... 北邮教育技术研究生怎么样?就业前景好么? 捏好包子皮的秘诀是什么? 500乘10的负四次是多少 ...通过了面试 然后告诉我 要无薪培训两个星期 看学习状况决定是否可 ...