谁能给简单通俗点解释下python里可变对象、不变对象、变量三者的关系?
4个回答
展开全部
①python中,万物皆对象。
②python中,没有绝对常量,有的是对常量的引用。
③python中,可变对象,表示的是对象内容可以改变,比如list ,dist
④python中,不可变对象,表示的是对象内容不可以改变,如字符串,tuple等
变量和对象,这两个很难解释,我个人理解是,比如在python中 i = 1,i是一个变量,也同时是一个对象,在python中, 变量和对象的区别不大,请看第①条。
如同 str = "Hello", str是变量(也是对象),而"Hello"就是常量了,str变量指向"Hello"。
所说的字符串重新赋值,只不过是创建了新的字符串,让变量指向这个新的地址罢了。
②python中,没有绝对常量,有的是对常量的引用。
③python中,可变对象,表示的是对象内容可以改变,比如list ,dist
④python中,不可变对象,表示的是对象内容不可以改变,如字符串,tuple等
变量和对象,这两个很难解释,我个人理解是,比如在python中 i = 1,i是一个变量,也同时是一个对象,在python中, 变量和对象的区别不大,请看第①条。
如同 str = "Hello", str是变量(也是对象),而"Hello"就是常量了,str变量指向"Hello"。
所说的字符串重新赋值,只不过是创建了新的字符串,让变量指向这个新的地址罢了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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.
就是说,对象的值如果可以修改,就称为可变对象,反之称为不可变对象
就是说,对象的值如果可以修改,就称为可变对象,反之称为不可变对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=(1,2,3)
a[0]=2 #error 是不可变对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
python里没有不变对象吧。不记得有这么个东东。所有的东西都是对象,也都是变量。 几乎所有的东西都可以改。
打个比喻,几乎所有的东西都是指针。类,模块,函数,变量,甚至程序本身都是可以变的。
打个比喻,几乎所有的东西都是指针。类,模块,函数,变量,甚至程序本身都是可以变的。
追问
谢谢上面的回答,明白了对象与变量之间的关系。
还想继续问问下面这段话里的意思:
在python精要参考(第二版)的P18页里有句话:某些对象的值是可变的,这些对象就被称为可变对象(mutable),另一些对象的值是不可变的,那就被称为不变对象(immutable)
不明白什么情况下就不可变了?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询