1. 학습
  2. /
  3. 강의
  4. /
  5. Python의 객체 지향 프로그래밍

Connected

연습 문제

동등성 오버로딩

사용자 정의 클래스의 두 객체를 ==로 비교하면, Python은 기본적으로 객체에 담긴 데이터가 아니라 객체 참조만 비교합니다. 이 동작을 바꾸려면, 비교할 두 객체를 인수로 받아 True 또는 False를 반환하는 특수 메서드 __eq__()를 구현하면 됩니다. 이 메서드는 두 객체가 비교될 때 암묵적으로 호출돼요.

이전 챕터의 BankAccount 클래스가 스크립트 창에 준비되어 있어요. 이 클래스에는 balance라는 속성과 withdraw() 메서드가 있습니다. 잔액이 같은 두 은행 계좌가 반드시 같은 계좌인 것은 아니지만, 보통 은행 계좌에는 계좌번호가 있고, 계좌번호가 같은 두 계좌는 같은 계좌로 보아야 합니다.

지침

100 XP

1–7행의 코드를 선택한 뒤 "코드 실행" 버튼을 눌러 보세요. 그런 다음 콘솔에서 몇 개의 BankAccount 객체를 생성해 비교해 보세요.

  • __init__() 메서드가 새로운 매개변수 number를 받도록 수정하고, 새로운 속성 number를 초기화하세요.
  • 두 객체의 number 속성이 같으면 True를 반환하는 __eq__() 메서드를 정의하세요.
  • print 문과 콘솔의 출력을 확인해 보세요.