Operadores de identidad, ser o no ser, esa es la cuestión

Los operadores de identidad permiten comprobar si dos objetos pertenecen al mismo tipo, y en Python existen dos, el is e is not.

Operadores de Identidad

Los operadores de identidad o identity operators comprueban la identidad de un objeto. Es decir, comprueban si dos objetos pertenecen a la misma clase o tipo. En otros capítulos hemos visto operadores como el relacional ==, que podría ser confundido con el is. Expliquemos sus diferencias.

Operador Nombre
is Devuelve True si pertenecen al mismo tipo
is not Devuelve False si no pertenecen al mismo tipo

Operador is

El operador is comprueba si dos objetos pertenecen a la misma clase o tipo. En el siguiente ejemplo tenemos el número 3 almacenado en dos variables, con la diferencia de que en a es almacenado como un int y en b como un float. Por lo tanto is hacemos a is b el resultado va a ser Falso, ya que pertenecen a distintos tipos.

a = 3
b = 3.0
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
print(a is b)    # False

Por lo contrario si declaramos dos variables con el mismo tipo, en este caso int y llamamos al operador is, veremos que el resultado es True, ya que ambas variables pertenecen al mismo tipo. Se puede ver de otra manera con id(), una función que nos devuelve un identificador único para cada tipo u objeto. Es decir, existe un identificador que se nos asegura que es único para cada tipo, y podemos ver como efectivamente es igual.

a = 3
b = 3
print(a is b)     # True
print(hex(id(a))) # 0x10626a870
print(hex(id(b))) # 0x10626a870

Para saber más: Si quieres saber más acerca del operador id() te dejamos este enlace a la documentación oficial.

Operador is not

Una vez definido is, es trivial definir is not porque es exactamente lo contrario. Devolverá True si ambos tipos son distintos. Como podemos ver, si tenemos un string y un int y aplicamos el operador is not, el resultado será True porque ambos tipos no son iguales.

a = 3
b = "Hola"
print(a is not b)
# True

Para saber más: Te dejamos un enlace muy interesante con más información sobre el is y is not.

Existen también otros tipos de operadores en Pyhton. Te dejamos unos enlaces por si te atreves con ellos:

¡Deja un comentario!

avatar
  Subscribe  
Notify of