Me di cuenta de que puedo usar el operador ==
para comparar todos los tipos de datos nativos (enteros, cadenas, booleanos, números de coma flotante, etc.) y también listas, tuplas, conjuntos y diccionarios que contienen tipos de datos nativos. En estos casos, el operador ==
comprueba si dos objetos son iguales. Sin embargo, en algunos otros casos (se trata de comparar instancias de clases que he creado) el operador ==
simplemente comprueba si hacen referencia a las dos variables del mismo objeto (lo que en estos casos el operador ==
es equivalente al operador is
)¿Cuándo el operador `==` no es equivalente al operador `is`? (Python)
Mi pregunta es: ¿Cuándo el operador ==
hace más que solo comparar identidades?
EDIT: Estoy usando Python 3
Esencialmente, '' == es diferente de 'is', siempre que sea una clase anula el método' __eq__' que hereda de 'object', por lo que no hay una respuesta fácil esta pregunta. Dependiendo de la versión de Python que esté utilizando, las cosas se complican aún más debido a la existencia de '__cmp__'. Además de la curiosidad, ¿hay alguna razón práctica para la pregunta? – Dirk
@Dirk, gracias. Lo pido principalmente por curiosidad, pero también creo que es bueno saber cuándo puedo usar exactamente el operador == para verificar la igualdad de los objetos. – snakile