Python 中的不可变对象是什么?
在 Python 中,不可变对象指的是创建后无法被修改的对象。这些对象在被创建后,如果想修改其中的某个部分,就需要重新创建一个新的对象。Python 中的不可变对象包括数字、字符串和元组等。
阅读更多:Python 教程
数字是不可变对象
Python 中的数字指的是整型和浮点型。整型是一种表示整数的数据类型,而浮点型则是一种表示小数的数据类型。
# 整型是不可变对象
a = 1
b = a
print(id(a), id(b)) # 输出相同的地址
a = 2
print(id(a), id(b)) # 输出不同的地址
在上面的代码中,a 和 b 最初指向同一个整型对象,它们的地址相同。但是当 a 被赋值为 2 时,a 指向了一个新的整型对象,此时 a 和 b 指向的地址就不同了。
# 浮点型是不可变对象
a = 1.0
b = a
print(id(a), id(b)) # 输出相同的地址
a = 2.0
print(id(a), id(b)) # 输出不同的地址
与整型类似,浮点型也是不可变对象。在上面的代码中,a 和 b 最初指向同一个浮点型对象,它们的地址相同。但是当 a 被赋值为 2.0 时,a 指向了一个新的浮点型对象,此时 a 和 b 指向的地址就不同了。
字符串是不可变对象
Python 中的字符串是以单引号或双引号括起来的一串字符。字符串也是一种不可变对象。
# 字符串是不可变对象
a = "hello"
b = a
print(id(a), id(b)) # 输出相同的地址
a = "world"
print(id(a), id(b)) # 输出不同的地址
在上面的代码中,a 和 b 最初指向同一个字符串对象,它们的地址相同。但是当 a 被赋值为 “world” 时,a 指向了一个新的字符串对象,此时 a 和 b 指向的地址就不同了。
元组是不可变对象
元组是一种有序的、不可变的集合类型。元组中的元素可以是不同的数据类型,但一旦创建后就无法更改。
# 元组是不可变对象
a = (1, 2, 3)
b = a
print(id(a), id(b)) # 输出相同的地址
a = (4, 5, 6)
print(id(a), id(b)) # 输出不同的地址
在上面的代码中,a 和 b 最初指向同一个元组对象,它们的地址相同。但是当 a 被赋值为 (4, 5, 6) 时,a 指向了一个新的元组对象,此时 a 和 b 指向的地址就不同了。
结论
在 Python 中,数字、字符串和元组都属于不可变对象类型。这些对象在创建后,无法被修改,如果想修改其中的某个部分,就需要重新创建一个新的对象。熟练掌握不可变对象的特点,能够有效地避免因操作不当导致的意外错误,保证代码的健壮性和可靠性。