isinstance
Chema Cortés
py en ch3m4.org
Mar Dic 21 13:29:09 CET 2004
El Martes, 21 de Diciembre de 2004 12:36, Catalin Lungu escribió:
> Hola,
> Me podrían decir cual es la diferencia entre:
>
> d={}
>
> if type(d) == dict:
> return "diccionario"
Lo primero, la igualdad == es "igualdad de valores" que no es equivalente a
"igualdad de identidades" en objetos. Para comprobar si dos objetos son
iguales hay que usar el operador 'is':
if type(d) is dict:
return "diccionario"
"a is b" es lo mismo que "id(a)==id(b)"
Si no lo entiendes te lo explico con un ejemplo:
class P(int):pass
a=P(10)
b=P(10)
a==b # True
a is b # False
> y
>
> if isinstance(d, dict):
> return "diccionario"
>
'dict' puede usarse para derivar nuevos tipos. Con 'type(d) is dict'
compruebas que sea del tipo 'dict' exclusivamente, siendo falso si fuera de
un tipo derivado:
class D(dict):pass
d=D()
type(d) is dict # False
isinstance(d,dict) # True
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20041221/a5ed1e09/attachment.pgp>
------------ 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