Python 연산과 출력에 맞는 객체 인터페이스를 만듭니다.
__repr__, __len__, __eq__, __iter__ 같은 double underscore 메서드는 내장 함수와 연산자가 객체를 다루는 방법을 정합니다. Python 데이터 모델을 따르면 사용자 객체도 기본 자료형처럼 자연스럽게 사용할 수 있습니다.
예제에서 def __len__(self): return ... 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
__repr__은 가능하면 개발자가 객체 상태를 재현하거나 진단할 수 있는 문자열을 반환합니다. 지원하지 않는 비교는 NotImplemented를 반환합니다.
놀라운 부작용이 있는 연산자 오버로딩을 피하고 해당 도메인에서 자연스러운 의미가 있을 때만 구현합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 CourseCollection에 __contains__를 추가해 제목 포함 여부를 검사하세요.
__str__과 __repr__의 목적을 섞어 민감한 정보를 로그용 repr에 노출하지 마세요.
직접 바꿔보세요CourseCollection에 __contains__를 추가해 제목 포함 여부를 검사하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.