[pyar] Como maneja python los enteros negativos

david weil tenuki en gmail.com
Sab Mar 12 19:48:59 ART 2011


2011/3/11 Martín Marqués <martin.marques en gmail.com>:
> El día 11 de marzo de 2011 11:41, Roberto Alsina
> <ralsina en netmanagers.com.ar> escribió:
> Justamente después hacemos cosas como:
>
> a = 123
> b = a
> a is b
>
> (esto ultimo da true)
>
>> 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.
>
> Aca nos encontramos con una diferencia entre versiones.
>
> Python 3.1.3 (r313:86834, Nov 28 2010, 11:28:10)
> [GCC 4.4.5] on linux2
> Type "copyright", "credits" or "license()" for more information.
>>>> 123 is 123
> True
>>>> -123 is -123
> True
>
> Python 3.2 (r32:88445, Feb 20 2011, 18:43:30)
> [GCC 4.4.5] on linux2
> Type "copyright", "credits" or "license()" for more information.
>>>> 123 is 123
> True
>>>> -123 is -123
> False
>
> Como veas algo cambio en 3.2 para que los negativos de Falso ahora.

Porque como dijeron por ahí, que a veces te devuelva la misma
instancia es una cuestión de implementación. :-)

Esto mostraría que `is` no depende de que sean negativos los objetos?

dave en ..:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=-123
>>> b=-123
>>> a is b
False
>>> b=a
>>> a is b
True
>>>


Saludos!

-- 
 There is no dark side of the moon really. Matter of fact it's all dark.



More information about the pyar mailing list