当我们创建一个变量并将其赋值为对象时,Python会在内存中为对象创建一个唯一的标识符。在Python中,对象是可变或不可变的。当对象是可变的时,我们可以修改其状态,而当对象是不可变的时,任何修改都将创建一个新的对象。
Python中的可变对象有:
- list
- set
- dict
这些对象创建后,我们可以通过添加、删除或更改它们的值来修改它们的状态。例如,我们创建一个列表,并向其添加一个元素:
my_list = [1, 2, 3]
my_list.append(4)
在这里,我们将一个元素添加到my_list中,而这不会创建一个新的对象。my_list引用的同一列表对象现在具有四个元素,而不是三个元素。
Python中的不可变对象有:
- int
- float
- bool
- str
- tuple
这些对象创建后,我们不能修改它们的状态。任何尝试修改它们的行为都会导致创建一个新的对象。例如,我们创建一个字符串并尝试使用索引将其一个字符修改:
my_string = "hello"
my_string[0] = "H"
这将引起TypeError错误,因为字符串是不可变的。相反,我们可以创建一个新的字符串对象,并将其赋值给my_string:
my_string = "Hello" + my_string[1:]
示例1
下面示例展示了如何修改列表:
# 创建列表
my_list = [1, 2, 3]
# 将第一个元素修改为4
my_list[0] = 4
# 输出修改后的列表
print(my_list)
在输出中,我们可以看到第一个元素已经被修改为4。
示例2
下面示例展示了如何修改字符串:
# 创建字符串
my_string = "hello"
# 创建新的字符串
my_string = "H" + my_string[1:]
# 输出更改后的字符串
print(my_string)
在输出中,我们可以看到首字母是大写字母H的新字符串。原始字符串并没有被修改,而是创建了一个新的字符串对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 的可变和不可变对象详情 - Python技术站