select case
Batista, Facundo
Facundo.Batista en telefonicamoviles.com.ar
Vie Abr 22 15:03:16 CEST 2005
[Pepe Aracil]
#- Lo del "is" no lo tengo tan claro. Por alguna razón de
#- optimización , funciona
#- con enteros del 0 a 99, lo que puede resultar algo confuso y
#- podría cambiar
#- en futuras versiones o implementaciones de python.
#-
#- >>> a = 1
#- >>> a is 1
#- True
#- >>> a = 100
#- >>> a is 100
#- False
No usen "is" para comparar "valores". El "is" compara identidades, dando
True si el objeto es el mismo en memoria, basicamente si el valor devuelto
para id() en ambos objetos es el mismo:
>>> d = {}
>>> l = [d]
>>> d is l[0]
True
>>>
Ahora, normalmente no lo usaríamos, porque los objetos se crean al
usarlos...
>>> {} is d
False
...aunque tengan el mismo "valor":
>>> {} == d
True
Eso es lo normal para la mayoría de los objetos, pero luego tenemos algunos
casos en particular, donde por optimización Python no crea nuevos objetos,
sino que los "cachea" en memoria. Esto sucede con un rango de enteros chicos
y cadenas de pocos caracteres. Ej:
>>> n = 5
>>> n is 5
True
>>> n = 1000
>>> n is 1000
False
>>>
Slds.
. Facundo
Bitácora De Vuelo: http://www.taniquetil.com.ar/plog
PyAr - Python Argentina: http://www.python.org/ar/
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
ADVERTENCIA.
La información contenida en este mensaje y cualquier archivo anexo al mismo,
son para uso exclusivo del destinatario y pueden contener información
confidencial o propietaria, cuya divulgación es sancionada por la ley.
Si Ud. No es uno de los destinatarios consignados o la persona responsable
de hacer llegar este mensaje a los destinatarios consignados, no está
autorizado a divulgar, copiar, distribuir o retener información (o parte de
ella) contenida en este mensaje. Por favor notifíquenos respondiendo al
remitente, borre el mensaje original y borre las copias (impresas o grabadas
en cualquier medio magnético) que pueda haber realizado del mismo.
Todas las opiniones contenidas en este mail son propias del autor del
mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones
Personales S.A. o alguna empresa asociada.
Los mensajes electrónicos pueden ser alterados, motivo por el cual
Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación
cualquiera sea el resultante de este mensaje.
Muchas Gracias.
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es