谁能给简单通俗点解释下python里可变对象、不变对象、变量三者的关系?

 我来答
菠萝啤cheers
2015-08-21 · TA获得超过199个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:153万
展开全部
①python中,万物皆对象。
②python中,没有绝对常量,有的是对常量的引用。
③python中,可变对象,表示的是对象内容可以改变,比如list ,dist
④python中,不可变对象,表示的是对象内容不可以改变,如字符串,tuple等
变量和对象,这两个很难解释,我个人理解是,比如在python中 i = 1,i是一个变量,也同时是一个对象,在python中, 变量和对象的区别不大,请看第①条。

如同 str = "Hello", str是变量(也是对象),而"Hello"就是常量了,str变量指向"Hello"。

所说的字符串重新赋值,只不过是创建了新的字符串,让变量指向这个新的地址罢了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kanchi240
2013-12-13 · TA获得超过363个赞
知道小有建树答主
回答量:151
采纳率:100%
帮助的人:113万
展开全部
If an object’s value can be modified, the object is said to be mutable. If the value cannot be modified, the object is said to be immutable.

就是说,对象的值如果可以修改,就称为可变对象,反之称为不可变对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
張員瑛
2013-12-13 · TA获得超过154个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:248万
展开全部
a=(1,2,3)
a[0]=2   #error 是不可变对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdwisyou7d
2013-12-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1071万
展开全部
python里没有不变对象吧。不记得有这么个东东。所有的东西都是对象,也都是变量。 几乎所有的东西都可以改。

打个比喻,几乎所有的东西都是指针。类,模块,函数,变量,甚至程序本身都是可以变的。
追问
谢谢上面的回答,明白了对象与变量之间的关系。
还想继续问问下面这段话里的意思:
在python精要参考(第二版)的P18页里有句话:某些对象的值是可变的,这些对象就被称为可变对象(mutable),另一些对象的值是不可变的,那就被称为不变对象(immutable)
不明白什么情况下就不可变了?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式