什么是Python可变对象和不可变对象?可变对象和不可变对象的区别

这篇文章运用简单易懂的例子给大家介绍什么是Python可变对象和不可变对象?可变对象和不可变对象的区别 , 代码非常详细 , 感兴趣的小伙伴们可以参考借鉴 , 希望对大家能有所帮助 。下面让我们一起进入学习吧!

什么是Python可变对象和不可变对象?可变对象和不可变对象的区别

文章插图
其实在python中可以把一切都看成是一个对象 , 然后在每一个对象中都存在着自己的ID , 类型(type)、值(value) 。
id: 就是在创建一个对象后 , 它的 id不会发生改变 , 其实它就是个存放在内存中的地址 , 你可以使用 id() 去查看对象在内存中地址 。
type: 和 id 一样当对象被创建之后 , 它的 type 也不能再被改变 , type 决定了该对象所能够支持的操作
value: 对象的值
python对象可变不可变都是取决于value的值是否可以发生改变 。
不可变对象
常见的不可变对象(immutable objects):
Number: int, float, complex
string
tuple
frozenset:set 的另外一种类型
让我们通过例子感受一下
例子
a=1b=xid(a)==id(a)Trueid(1)==id(b)True这里创建了两个 int 对象 , 并且让 a,b 指向同一个对象 , 然后我们试着修改一下 a,让 a+1
输出:
a=a+1通过实例结果不难看出来 , a 所指向的对象已经改变了 , 但是 1 并没有改变 。这就是不可变对象 , 对于不可变对象来说 , 一旦创建之后就不允许被改变 。
可变对象
常见的可变对象:list、dict、set
同样的通过例子感受一下:
x = [1,2,3]y = xid(y)==id(x)True创建两个 list 对象 , 并且让 x,y 指向同一个对象 , 然后我们试着修改一下 x
x[0]=4这个时候在看一下两个对象的 id 值是否一致
id(x)==id(y)True发现在修改之后 , x,y 仍然指向同一个对象 , 所以不难得出结论 , 对于一个可变对象来说 , 修改 value 值并不会对它的 id 造成任何影响 。
【什么是Python可变对象和不可变对象?可变对象和不可变对象的区别】关于什么是Python可变对象和不可变对象?可变对象和不可变对象的区别就分享到这里了 , 希望以上内容可以对大家有一定的帮助 , 可以学到更多知识 。

    推荐阅读