[pyar] Como maneja python los enteros negativos

Roberto Alsina ralsina en netmanagers.com.ar
Vie Mar 11 11:41:08 ART 2011


On 3/11/2011 11:33 AM, Martín Marqués wrote:
> Cual es la logica detras de esto?
Aaaaaaarghhhhh, no, esto de nuevo noooooo!

Ehem. Ok, para saber si dos numeros son iguales usá ==. "is" no es el 
operador de igualdad, "is" es el operador de identidad.

O sea, "is" da True cuando dos nombres apuntan al MISMO objeto, no 
cuando son iguales. ((is is not ==) and (== != is)) == True.

Dos objetos iguales pueden ser el mismo o no (con lo que a is not b pero 
a == b).
Un único objeto puede no ser igual a sí mismo (con lo que a is b pero a 
!= b).

En particular, la implementación de python que estás usando, por una 
cosa de la vida, hace que algunos enteros chiquitos se comporten como 
singletons, y siempre usas la misma instancia. Como los enteros son 
inmutables, eso funciona correctamente y no tiene ningún efecto 
secundario desagradable.

Pero eso es solamente un detalle de implementación y no es importante 
más allá de algún efecto de performance.

Lo mas probable es que el unico caso en que uses is en un programa 
razonable de python es "x is None"



More information about the pyar mailing list