Comparar objetos
Python · Unidad 14: Clases modernas
- Plan completo
- Python
- 10 ejercicios
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. Predice la salida
¿Qué imprime este código?
2. Predice la salida
¿Qué imprime este código?
3. Completa el código
Completa para que dos fichas con el mismo número sean iguales.
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. Predice la salida
Dos alumnos son el mismo si comparten matrícula. ¿Qué imprime?
6. Completa el código
Completa para que imprima el título del libro más corto.
7. Encuentra el bug
Debería imprimir el nombre del producto más barato, sal. ¿Qué línea tiene el error?
8. Predice la salida
Ana y Leo van empatados en puntos. ¿Qué imprime?
9. Opción múltiple
En un
@dataclass(order=True)de puntos y nombre, ¿qué cambia si escribesnomantes quepuntos?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?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.