程序员

python的“不可变性”代表了什么?

2017-04-04  本文已影响0人  唐大方

在python中,每一个对象都可以分为不可变性或者可变性。

不可变性可以用来保证在程序中保持一个对象的固定不变。

一个具有“不可变性”的对象,是一个在其创建以后不能够被改变的对象。例如,不能通过对字符串的某一位置进行赋值而改变字符串。

Python中的数字、字符串、元组是不可变的;列表和字典可以完全自由地改变。

尽管无法就地改变一个不可变的对象,但是可以通过运行一个表达式创建一个新的对象。例如,可以通过创建一个新的字符串,并以相同的变量名进行赋值:

str = 'bukebian'

str[0:2] = ''

Traceback (most recent call last):

 File "file.py", line 3, in

str[0:2] = ''

TypeError: 'str' object does not support item assignment

str = 'ok'

print(str)

ok

此时,变量str指向了新的对象'ok',曾指过的对象'bukebian'没有发生任何变化,仍旧在其原来的内存空间。只有一种情况会出现,那就是被python清理掉,条件是其他变量都没有引用(指向)它。

上一篇 下一篇

猜你喜欢

热点阅读