Comprobación de la igualdad de clases
En el ejercicio anterior, definiste una clase BankAccount
con un atributo number
que se utilizaba para comparar. Pero si compararas un objeto BankAccount
con un objeto de otra clase que también tuviera el atributo number
, podrías obtener resultados inesperados.
Por ejemplo, considera dos clases
|
|
Ejecutar acct == pn
devolverá True
, aunque compare un número de teléfono con un número de cuenta bancaria.
Es una buena práctica comprobar la clase de los objetos pasados al método __eq__()
para asegurarse de que la comparación tiene sentido.
Este ejercicio forma parte del curso
Introducción a la Programación Orientada a Objetos en Python
Instrucciones de ejercicio
- Modifica la definición de
BankAccount
para que sólo devuelvaTrue
si el atributonumber
es el mismo y eltype()
de ambos objetos que se le pasan es el mismo. - Comprueba si
acct
ypn
son iguales.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
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(____)