Memeriksa kesetaraan kelas
Pada latihan sebelumnya, Anda mendefinisikan kelas BankAccount dengan atribut number yang digunakan untuk perbandingan. Namun, jika Anda membandingkan objek BankAccount dengan objek dari kelas lain yang juga memiliki atribut number, hasilnya bisa tidak terduga.
Sebagai contoh, perhatikan dua kelas berikut
|
|
Menjalankan acct == pn akan mengembalikan True, meskipun yang dibandingkan adalah nomor telepon dengan nomor rekening bank.
Merupakan praktik yang baik untuk memeriksa kelas objek yang diteruskan ke metode __eq__() guna memastikan perbandingan tersebut masuk akal.
Latihan ini merupakan bagian dari kursus
Pengantar Pemrograman Berorientasi Objek di Python
Instruksi latihan
- Ubah definisi
BankAccountagar hanya mengembalikanTruejika atributnumbersama dantype()dari kedua objek yang diteruskan juga sama. - Periksa apakah
acctdanpnbernilai sama.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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(____)