在Python中,对象可以分为两类:可变对象(Mutable Objects)和不可变对象(Immutable Objects)。
不可变对象(Immutable Objects):
-
数字(int): 整数是不可变的,例如
x = 5
,你无法改变x
的值,但可以重新赋值给x
。 -
浮点数(float): 浮点数也是不可变的。
-
字符串(str): 字符串是不可变的,你不能在原字符串上进行更改操作,但可以通过创建新的字符串来实现。
-
元组(tuple): 元组也是不可变的,一旦创建,就不能更改其中的元素。
-
冻结集合(frozenset): 与集合不同,冻结集合是不可变的,一旦创建,就不能更改其中的元素。
可变对象(Mutable Objects):
-
列表(list): 列表是可变的,你可以更改、添加或删除列表中的元素。
-
集合(set): 集合是可变的,你可以添加或删除集合中的元素。
-
字典(dict): 字典是可变的,你可以添加、删除或修改字典中的键值对。
-
自定义对象(classes): 如果你创建了一个类并定义了可以更改对象属性的方法,那么该类的实例也被认为是可变的。
可变对象可以在其生命周期内进行更改,而不可变对象一旦创建,就无法更改其内容。
这种区分对于理解Python的行为和规则非常重要,特别是在处理函数参数、返回值等情况下。例如,在将可变对象传递给函数时,函数可能会更改这些对象。而对于不可变对象,函数无法更改原始对象,只能返回一个新的对象。