当传递不可变对象时。不可变对象里面包含的子对象是可变的。则方法内修改了这个可变对象,源对象也发生了变化。
a = (10, 20, [5, 6])
print("a", id(a))
def test01(m):
print("m", id(m))
m[2][0] = 888
print("修改m后m的值为{}".format(m))
print("m", id(m))
if __name__ == '__main__':
test01(a)
print("a的值为{}".format(a))
print("a的id为{}".format(id(a)))
a = (10, 20, [5, 6])
是一个元组。在 Python 中,元组是一种不可变的数据结构,表示为一组有序的元素。元组的元素可以是不同类型,像在这个元组中,有两个整数 10
和 20
,以及一个列表 [5, 6]
。虽然元组本身是不可变的,但元组中的列表是可变的,这意味着你可以修改列表的内容。