Saltar al contenido

Comparar objetos

Python · Unidad 14: Clases modernas

Dos objetos distintos con los mismos datos no son iguales: == entre objetos pregunta si son el mismo objeto, no si se parecen.

En un @dataclass sí compara los datos, porque el decorador también escribe un __eq__ que va campo por campo.

from dataclasses import dataclass

class Taza:
    def __init__(self, ml):
        self.ml = ml

@dataclass
class Vaso:
    ml: int

print(Taza(250) == Taza(250))
print(Vaso(250) == Vaso(250))

Imprime

False
True

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    ¿Qué imprime este código?

  2. 2. Predice la salida

    ¿Qué imprime este código?

  3. 3. Completa el código

    Completa para que dos fichas con el mismo número sean iguales.

  4. 4. Encuentra el bug

    Dos notas con el mismo valor deberían ser iguales, así que debería imprimir True. ¿Qué línea tiene el error?

  5. 5. Predice la salida

    Dos alumnos son el mismo si comparten matrícula. ¿Qué imprime?

  6. 6. Completa el código

    Completa para que imprima el título del libro más corto.

  7. 7. Encuentra el bug

    Debería imprimir el nombre del producto más barato, sal. ¿Qué línea tiene el error?

  8. 8. Predice la salida

    Ana y Leo van empatados en puntos. ¿Qué imprime?

  9. 9. Opción múltiple

    En un @dataclass(order=True) de puntos y nombre, ¿qué cambia si escribes nom antes que puntos?

  10. 10. Encuentra el caso que falla

    mejor(puntos) recibe una lista de puntajes y regresa el más alto, o 0 si la lista viene vacía. ¿Con qué llamada falla?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →