Python中一切皆为对象,每一个对象都有一个唯一的标识符( id( ) )、类型(type( ))以及值。而对象根据其值是否能够修改分为可变对象和不可变对象:
- 数字、字符串和元组属于不可变对象
- 字典、列表和字节数组属于可变对象
对于不可变对象,任何对其中的元素进行修改的操作都会抛出异常。
>>> test_str = 'hello world'
>>> test_str[5] = 'q'
-----------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-2-8e9684bd3ddc> in <module>()
> 1 test_str[5] = 'q'
TypeError: 'str' object does not support item assignment
>>> test_tuple = (1, 2, 3)
>>> test_tuple[1] = 4
-----------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-dba7800e3210> in <module>()
> 1 test_tuple[1] = 4
TypeError: 'tuple' object does not support item assignment
而对于可变对象,对其进行操作需要考虑到浅拷贝和深拷贝的问题。