1. Learn
  2. /
  3. Courses
  4. /
  5. Python 객체 지향 프로그래밍 입문

Connected

Exercise

클래스 동등성 확인

이전 연습 문제에서, 비교에 사용할 number 속성이 있는 BankAccount 클래스를 정의했어요. 하지만 number 속성을 가진 다른 클래스의 객체와 BankAccount 객체를 비교하면 의도치 않은 결과가 나올 수 있습니다.

예를 들어, 다음 두 클래스를 보세요.


class Phone:
    def __init__(self, number):
        self.number = number

    def __eq__(self, other):
        return self.number == \
               other.number

pn = Phone(873555333)

class BankAccount:
    def __init__(self, number):
        self.number = number

    def __eq__(self, other):
        return self.number == \
               other.number

acct = BankAccount(873555333)

acct == pn을 실행하면 전화번호와 은행 계좌 번호를 비교하는데도 True가 반환됩니다.

비교가 의미 있게 동작하도록 하려면, __eq__() 메서드에 전달된 객체들의 클래스를 확인하는 것이 좋은 습관입니다.

Instructions

100 XP
  • BankAccount 정의를 수정해, 전달된 두 객체의 type()이 같고 number 속성도 같을 때만 True를 반환하도록 하세요.
  • acct와 pn이 같은지 확인하세요.