Читать книгу El gran libro de Python - Marco Buttu - Страница 62
Objetos mutables e inmutables
ОглавлениеAnte dos etiquetas a y b que hacen referencia al mismo objeto, ¿qué ocurre si hacemos una asignación a una de las dos? Espero que nadie diga que será modificado el objeto al cual hacen referencia. Ya hemos dicho que no es posible modificar un objeto con una asignación. Lo que ocurre es que la etiqueta hará referencia al nuevo objeto que se le asignará. Consideremos el siguiente ejemplo:
Las dos etiquetas a y b se refieren al mismo objeto, como se muestra en la Figura 1.6.
Figura 1.6 - Las etiquetas a y b se refieren al mismo objeto, que tiene la identidad 3074330092.
Si ahora realizamos la asignación a = [1, 2, 3, 4], el objeto con identidad 3074330092 no será modificado:
De hecho, ha sido creado un nuevo objeto, que representa la lista [1, 2, 3, 4], que ha sido asignado a la etiqueta a, mientras que la etiqueta b continua haciendo referencia al mismo objeto que antes, como se muestra en la Figura 1.7.
Figura 1.7 - La etiqueta a se refiere a un nuevo objeto, mientras que b continua refiriéndose al objeto anterior.
Llegados a este punto, quizás nos hayamos preguntado lo siguiente: "¿cómo podemos modificar un objeto si no es posible hacerlo con una asignación ni implícita ni explícita?”. La respuesta nos permitirá entender mejor la diferencia entre objetos mutables e inmutables.