万物之中, 希望至美.

Python中的可变对象与不可变对象

2018.01.25

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

而对于可变对象,对其进行操作需要考虑到浅拷贝和深拷贝的问题。

comments powered by Disqus