클래스 동등성 확인
이전 연습 문제에서, 비교에 사용할 number 속성이 있는 BankAccount 클래스를 정의했어요. 하지만 number 속성을 가진 다른 클래스의 객체와 BankAccount 객체를 비교하면 의도치 않은 결과가 나올 수 있습니다.
예를 들어, 다음 두 클래스를 보세요.
|
|
acct == pn을 실행하면 전화번호와 은행 계좌 번호를 비교하는데도 True가 반환됩니다.
비교가 의미 있게 동작하도록 하려면, __eq__() 메서드에 전달된 객체들의 클래스를 확인하는 것이 좋은 습관입니다.
이 연습은 강의의 일부입니다
Python 객체 지향 프로그래밍 입문
연습 안내
BankAccount정의를 수정해, 전달된 두 객체의type()이 같고number속성도 같을 때만True를 반환하도록 하세요.acct와pn이 같은지 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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(____)