Python 不可变对象

  • Post category:Python

Python 不可变对象使用方法攻略

什么是不可变对象

在 Python 中,有些对象被称为不可变对象,这些对象一旦被创建,就无法改变其值。即使尝试修改不可变对象,也将返回一个新的对象,而不是修改原有对象的值。

常见的不可变对象包括字符串、数字、元组等。

不可变对象的优缺点

优点

  1. 可以直接使用 Hash 表进行存储,提高查询效率;
  2. 线程安全,不需要添加锁以保证数据的安全;
  3. 不可变对象的值不会因为外部操作而发生改变,使程序更加可靠。

缺点

  1. 不能做到动态修改;
  2. 每次修改都需要重新创建一个对象,会损失一定的内存和时间开销。

不可改变对象的使用方法

字符串

字符串是常见的不可变对象。常见的字符串方法包括:

  • strip():去除字符串前后的空格;
  • split():将字符串以某个字符为分割符进行分割;
  • replace():将字符串中的某个字符替换为另外一个字符;

示例代码:

s = "   hello world   "
s = s.strip() # "hello world"
s_list = s.split() # ["hello", "world"]
s = s.replace("l", "L") # "heLLo worLd"

元组

元组是不可变的序列,在创建之后不能被修改,也没有其他修改元素的方法。

可以使用下标索引的方式获取元组中的元素,也可以使用切片进行截取。

示例代码:

t = (1, 2, 3, 4)
t[0] = 0 # TypeError: 'tuple' object does not support item assignment
t_slice = t[1:3] # (2, 3)

总结

不可变对象在 Python 中有着广泛的应用场景,需要注意的是,如果已经创建了不可变对象,就无法修改其值。在使用时,可以利用不可变对象的线程安全和 hash 特性,提高程序运行效率。