python初学者的问题

代码:a=b=c=1print(c)a=a-aprint(c)print(a)运行结果:110结果很让我意外,我以为a,b,c之间是引用的关系(c++),因为是指向同一对... 代码:a=b=c=1print(c)a=a-aprint(c)print(a)运行结果:110结果很让我意外,我以为a,b,c之间是引用的关系(c++),因为是指向同一对象地址的,所用版本为py3。学的浅,希望大佬告知原因。
百度知道的排版太水了
展开
 我来答
albumin
2018-03-06 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2371万
展开全部
数字,字符串,元组等属于不可变对象,是不能改变的,如果改变变量的值,变量指向的是一个新的对象,而不是原来的对象
a=b=c=1 一开始a,b,c都是同 一个对象
如果你改变其中任何一个的值 ,都会分配一个新的对象给它,

只有列表,字典等可变对象才能在原对象基础上改变
更多追问追答
追问
有没有什么函数可以帮助确认一下a,b,c的对象地址?
追答
>>> a=b=c=1
>>> id(a),id(b),id(c)
(10413952, 10413952, 10413952)
>>> c=2
>>> id(c)
10413940
阳光的雷咩咩
2018-03-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7781万
展开全部
即便是C++,相同的代码也是一样的结果吧(除非用指针)。
追问
c++不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式