Sınıf eşitliğini kontrol etme
Önceki egzersizde, karşılaştırma için kullanılan bir number özniteliğine sahip bir BankAccount sınıfı tanımladın. Ancak number özniteliği olan başka bir sınıfın nesnesiyle bir BankAccount nesnesini karşılaştırırsan, beklenmedik sonuçlar elde edebilirsin.
Örneğin, iki sınıfı düşün:
|
|
acct == pn çalıştırıldığında True döner; oysa bir telefon numarasıyla bir banka hesap numarasını karşılaştırmaktadır.
Karşılaştırmanın mantıklı olduğundan emin olmak için __eq__() yöntemine geçirilen nesnelerin sınıfını kontrol etmek iyi bir pratiktir.
Bu egzersiz
Python'da Nesne Yönelimli Programlamaya Giriş
kursunun bir parçasıdırEgzersiz talimatları
BankAccounttanımını, yalnızcanumberözniteliği aynıysa ve kendisine geçirilen her iki nesnenintype()değeri aynıysaTruedöndürecek şekilde değiştir.acctvepneşit mi kontrol et.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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(____)