Objetos y valores

Si ejecutamos estas sentencias de asignación:

Presuntamente a y b a unas cadenas con las letras «banana«. Pero no podemos saber si están apuntando a la misma dirección de la cadena.

Hay dos posibles estados:

Un estado en el que a y b se refieren a dos cosas diferentes que tienen el mismo valor. El segundo caso, se refieren a la misma cosa. Estas “cosas” tienen nombres; se les denomina objetos. Un objeto es una cosa a la que se puede referir una variable.

Cada objeto tiene un identificador único, que podemos obtener por medio de
la función id. Imprimiendo los identificadores de a y b podemos saber si apuntan
al mismo objeto.

En este caso, las dos veces obtenemos el mismo identificador, lo que significa
que Python sólo creó una cadena y ambas variables, a y b, apuntan a ella.

Como l150as cadenas de texto son inmutables, no hay diferencia práctica entre los dos posibles estados. Para tipos mutables como las listas, sı́ que importa.

De manera que el diagrama de estado se representaría así…

a y b tienen el mismo valor, pero no se refieren al mismo objeto.