[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