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:
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:
a y b tienen el mismo valor, pero no se refieren al mismo objeto.
Comentarios
Publicar un comentario