Python 的变量类型

Python 的变量类型

可变类型 / mutable

可变类型的实例,在初始化之后允许改变其值。

>>> a = []
>>> print(a)
[]
>>> a.append('new_value')
>>> print(a)
['new_value']

但注意,如果用 = 赋值,其实是改变指向,而不是改变其实例的值

>>> a=[]
>>> print(id(a))
140323581464840
>>> a.append(1)
>>> print(id(a))
140323581464840
>>> print(a)
[1]
>>> a=[1]
>>> print(id(a))
140323582166152

可以看到,使用append,并没有改变a变量的地址并且还改变了a的数值。但是使用 = 赋值,那么地址就已经发生了改变,虽然值还是一样的

不可变类型 / immutable

这种类型的实例,在初始化之后就不允许改变其值。

但是你会看到一些变量明明可以改数值,那是为什么呢?

>>> a = 3
>>> print(a)
3
>>> a = 4
>>> print(a)
4

因为实例的值不能改变,但是对象可以改变指向,在重新赋值的时候,变量已经指向了新对象

>>> a = 3
>>> print(id(a))
140323607520352
>>> a = 4
>>> print(id(a))
140323607520384

python 的可变/不可变变量表

1560851873003.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容