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, kursun bir parçasıdır
Python'da Nesne Yönelimli Programlamaya Giriş
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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(____)