8.10. Objetos y valores

Si ejecutamos estas sentencias de asignación:

   1: a = "banana"
   2: b = "banana"

Esta claro que a y b apuntan ambos a cadenas con las letras "banana". Pero no podemos saber si están apuntando a la misma cadena.


Hay dos posibles estados:


Sin título


En un caso, a y b se refieren a dos cosas diferentes que tienen el mismo valor.


En 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.




   1: >>> id(a)
   2: 135044008
   3: >>> id(b)
   4: 135044008

 

Curiosamente, las listas se comportan de otra manera. Cuando crea dos listas, obtiene dos objetos:



   1: >>> a = [1, 2, 3]
   2: >>> b = [1, 2, 3]
   3: >>> id(a)
   4: 135045528
   5: >>> id(b)
   6: 135041704

De manera que el diagrama de estado sería tal como este:

Sin título1

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

0