Verificação da igualdade de classes
No exercício anterior, você definiu uma classe BankAccount
com um atributo number
que foi usado para comparação. Mas se você comparar um objeto BankAccount
com um objeto de outra classe que também tenha um atributo number
, poderá obter resultados inesperados.
Por exemplo, considere duas classes
|
|
A execução de acct == pn
retornará True
, mesmo que você compare um número de telefone com um número de conta bancária.
É uma boa prática verificar a classe dos objetos passados para o método __eq__()
para garantir que a comparação faça sentido.
Este exercício faz parte do curso
Introdução à programação orientada a objetos em Python
Instruções de exercício
- Modifique a definição de
BankAccount
para apenas retornarTrue
se o atributonumber
for o mesmo e otype()
de ambos os objetos passados para ele for o mesmo. - Verifique se
acct
epn
são iguais.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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(____)