python-operadores-identidad

Operadores de identidad en Python

Los operadores de identidad nos permiten verificar si dos variables se refieren al mismo objeto en la memoria. Estos operadores son útiles para comparar la identidad de objetos, es decir, si dos variables apuntan al mismo lugar en la memoria.

Los operadores is y is not son muy eficientes ya que simplemente comparan las direcciones de memoria de dos objetos. No realizan ninguna operación adicional, lo que los hace adecuados para verificar la identidad de objetos.

Lista de operadores de identidad

Operador is

El operador is se utiliza para verificar si dos variables se refieren al mismo objeto en la memoria.

a = [1, 2, 3]
b = a

es_igual = (a is b)  # True, ya que a y b se refieren al mismo objeto

En este ejemplo, tanto a como b apuntan al mismo objeto en la memoria, por lo que la expresión a is b es True.

Operador is not

El operador is not se utiliza para verificar si dos variables NO se refieren al mismo objeto en la memoria.

x = 10
y = 10

no_es_igual = (x is not y)  # False, ya que x e y se refieren al mismo objeto

En este ejemplo, tanto x como y apuntan al mismo objeto en la memoria (en Python, los enteros pequeños se almacenan en la misma ubicación), por lo que la expresión x is not y es False.

Ejemplos de uso

Verificación de identidad de variables

x = 100
y = x

son_iguales = (x is y)  # True, ya que x e y son el mismo objeto en memoria

Verificación de identidad de listas

lista1 = [1, 2, 3]
lista2 = [1, 2, 3]
lista3 = lista1

son_iguales = (lista1 is lista2)  # False, ya que lista1 y lista2 no son el mismo objeto
son_iguales2 = (lista1 is lista3)  # True, ya que lista1 y lista3 son el mismo objeto

Verificación de identidad de objetos

class MiClase:
    pass

objeto1 = MiClase()
objeto2 = MiClase()
objeto3 = objeto1

son_iguales = (objeto1 is objeto2)  # False, ya que objeto1 y objeto2 no son el mismo objeto
son_iguales2 = (objeto1 is objeto3)  # True, ya que objeto1 y objeto3 son el mismo objeto