Python 的变量类型

2019-06-19  本文已影响0人  一百万个不确定

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
上一篇 下一篇

猜你喜欢

热点阅读