Aprenda el operador de identidad de Python y la diferencia entre el operador == y es
- 3446
- 236
- Carmen Casillas
Este artículo está curado principalmente para explicar un operador importante en Python ("Operador de identidad") Y cómo difiere un operador de identidad (es, no es) del operador de comparación (==)
.
Operador de identidad
Operador de identidad ("es"
y "no es"
) se usa para comparar la ubicación de memoria del objeto. Cuando se crea un objeto en la memoria, se asigna una dirección de memoria única a ese objeto.
'=='
compara si ambos valores de objeto son idénticos o no.'es'
se compara si ambos objeto pertenecen a la misma ubicación de memoria.
Crear tres objetos de cadena Nombre, Nombre1, y Nombre2. Objeto de cadena Nombre y Nombre2 mantendrá el mismo valor y Nombre1 mantendrá diferentes valores.
Cuando creamos estos objetos, lo que sucede detrás de la escena es que ese objeto se creará en la memoria y estará disponible durante la vida del programa.
Ahora puede usar un operador de comparación "=="
Para verificar si ambos valores de objeto son los mismos. La salida del operador de comparación será un booleano (Verdadero o FALSO) valor.
Ahora que ha comparado dos valores para determinar la igualdad, echemos un vistazo a cómo funciona el operador de identidad.
El incorporado Identificación()
Se utiliza una función para obtener el "identidad"De un objeto. Un entero que será único y constante para el objeto durante su vida.
Para hacer que sea simple pensar esto como un gobierno único IDENTIFICACIÓN o EMP ID Asignado a usted, también se asigna un valor entero único para cada objeto.
Valor entero únicoAhora puede comparar 2 referencias de objetos usando "es"
operador.
Cuando comparo Nombre y Nombre1 o Nombre2 Usar el operador de identidad lo que hace en el backend es simplemente ejecutar "ID (nombre) == ID (Name2)"
. Desde ID (nombre) y ID (nombre2) Ambos comparten la misma ubicación de memoria, regresa Verdadero.
Ahora aquí viene la parte interesante. Mira nuestro ejemplo anterior donde ambos Nombre y Nombre1 tener valores idénticos y devolver el mismo valor entero cuando se ejecutamos identificación()
función. ¿Por qué piensas "Name_new" y "Name_le"El objeto no es idéntico a pesar de que comparten los mismos valores de la siguiente captura de pantalla?
Esto se debe a la implementación del diseño de Python. Cuando crea un objeto entero en el rango (-5,256) y los objetos de cadena mayores o iguales a 20 Chars, en lugar de crear diferentes objetos en la memoria para el mismo valor, estos objetos actúan como un puntero a los objetos ya creados.
A continuación, la representación pictórica le dará una idea clara de lo que hemos visto hasta ahora en este artículo.
Representación esquemáticaResumen
En este artículo, hemos visto lo que es un operador de identidad. Cómo se utiliza el operador de comparación y el operador de identidad, implementación de diseño sobre cómo se crea un objeto en la memoria.
- « Cómo restablecer la contraseña de root olvidada en Debian 10
- Watchman una herramienta de observación de archivos y directorio para cambios »