这篇文章运用简单易懂的例子给大家介绍什么是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=1
b=x
id(a)==id(a)
True
id(1)==id(b)
True

这里创建了两个 int 对象,并且让 a,b 指向同一个对象,然后我们试着修改一下 a,让 a+1

输出:

a=a+1

通过实例结果不难看出来,a 所指向的对象已经改变了,但是 1 并没有改变。这就是不可变对象,对于不可变对象来说,一旦创建之后就不允许被改变。

可变对象

常见的可变对象:list、dict、set

同样的通过例子感受一下:

x = [1,2,3]
y = x
id(y)==id(x)
True

创建两个 list 对象,并且让 x,y 指向同一个对象,然后我们试着修改一下 x

x[0]=4

这个时候在看一下两个对象的 id 值是否一致

id(x)==id(y)
True

发现在修改之后,x,y 仍然指向同一个对象,所以不难得出结论,对于一个可变对象来说,修改 value 值并不会对它的 id 造成任何影响。

关于什么是Python可变对象和不可变对象?可变对象和不可变对象的区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。

更多python相关文章请访问分类:python

【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!