Comprobar la igualdad de clases
En el ejercicio anterior, definiste una clase BankAccount con un atributo number que se usaba para comparar. Pero si comparas un objeto BankAccount con un objeto de otra clase que también tenga un atributo number, podrías obtener resultados inesperados.
Por ejemplo, considera estas dos clases
|
|
Ejecutar acct == pn devolverá True, aunque esté comparando un número de teléfono con un número de cuenta bancaria.
Es una buena práctica comprobar la clase de los objetos que se pasan al método __eq__() para asegurarte de que la comparación tenga sentido.
Este ejercicio forma parte del curso
Introducción a la programación orientada a objetos en Python
Instrucciones del ejercicio
- Modifica la definición de
BankAccountpara que solo devuelvaTruesi el atributonumberes el mismo y eltype()de ambos objetos que se le pasan es el mismo. - Comprueba si
acctypnson iguales.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
class BankAccount:
def __init__(self, number, balance=0):
self.number, self.balance = number, balance
def withdraw(self, amount):
self.balance -= amount
# Modify to add a check for the class type
def __eq__(self, other):
return (self.number == other.number) ____
acct = BankAccount(873555333)
pn = Phone(873555333)
# Check if the two objects are equal
print(____)