Python 编程中的对象类型与语句
1. 共享引用与对象复制
在 Python 编程里,共享引用是一个重要概念。当我们对一个对象进行操作时,可能会影响到其他引用该对象的变量。例如:
L = [1, 2, 3]
M = ['X', L, 'Y']
L[1] = 0
print(M) # 输出: ['X', [1, 0, 3], 'Y']
在这个例子中, M
中的 L
与外部的 L
是同一个对象引用,所以修改 L
会影响到 M
。若不想出现这种情况,可通过复制对象来避免共享引用。对于列表,可使用空切片来创建顶层副本:
L = [1, 2, 3]
M = ['X', L[:], 'Y']
L[1] = 0
print(L) # 输出: [1, 0, 3]
print(M) # 输出: ['X', [1, 2, 3], 'Y']
空切片 L[:]
会提取序列中的每个元素,创建一个新的、不共享的对象。
2. 重复操作的影响
重复序列操作可能会带来意想不到的结果,尤其是在嵌套可变序列时。示例如下:
L = [4, 5, 6]
X = L * 4
Y = [L] * 4
print(X)