Читать книгу El gran libro de Python - Marco Buttu - Страница 65
Objetos inmutables que contienen objetos mutables
ОглавлениеConsideremos ahora el caso de un objeto inmutable que contiene objetos mutables, como el de una tupla que contiene un conjunto y una lista:
Los elementos de un objeto contenedor son simplemente referencias a los correspondientes objetos, como se muestra en la Figura 1.10.
Figura 1.10 - Objeto inmutable que contiene objetos mutables.
La inmutabilidad consiste en no poder modificar las referencias de la tupla, es decir, en no poder efectuar una asignación del siguiente tipo:
Esto significa que no es posible que t[0] haga referencia a un objeto distinto al conjunto con identidad 3072619996. Pero esto no quiere decir que el objeto al cual t[0] se refiere no pueda ser modificado:
El resultado de t[0].add('c') y t[1].append(4) se muestra en la Figura 1.11, en la cual se puede ver cómo los objetos a los cuales t[0] y t[1] se refiere han sido modificados.
Figura 1.11 - Los objetos mutables contenidos en un objeto inmutable pueden ser modificados.