Mostrando entradas con la etiqueta Performance. Mostrar todas las entradas
Mostrando entradas con la etiqueta Performance. Mostrar todas las entradas

lunes, 15 de junio de 2020

Comparar variables (is Vs ==)

Para evaluar si dos variables (var1 y var2) tienen el mismo contenido, se utiliza var1 == var2. Pero si el contenido de esas variables está en el rango desde -5 hasta 256, puede usarse var1 is var2 que es mas eficiente.

Esto es así porque Python asigna la misma dirección de memoria a las variables, cuando los valores están dentro de este rango (ver referencia 1), y el operador "is" no compara el contenido, sino la dirección de memoria, que es más eficiente. 

Es decir, Python asigna el mismo id de memoria a todas las variables cuyo valor sea igual a 1, y asignará otro id de memoria para todas las variables cuyo valor sea igual a 2, y así hará lo mismo para los valores desde -5 hasta 256. Esto lo podemos comprobar si creamos las variablaes var1=1 y var2=1, y luego  imprimimos los ids usando id(var1) y id(var2).

Por tal razón siempre será mas eficiente, en terminos de tiempo de ejecucion, usar el operador is, cuando los valores esten dentro del rango descrito.