로그인 바로가기 하위 메뉴 바로가기 본문 바로가기

데이터 구조 및 분석: Linear Structure and Dynamic Programming

임시 이미지 KAIST 산업및시스템공학과 문일철
http://kooc.kaist.ac.kr/datastructure-2019s/forum/119101
좋아요 1780 수강생 3368

안녕하세요. 강의 잘 수강하고 있습니다.

다름이 아니라 week2 15페이지에 있는 코드에서 duck typing에 관해 질문드리고자 합니다.

교수님께서 getVolume()이 Room 내의 메소드이기 때문에 __eq__(self, other)에서 other의 인자 값으로 Room의 인스턴스가 주어지지 않으면 실행 과정에서 오류가 발생할 것이라고 하셨습니다. 그런데 __eq__(self, other) 내에서

isinstance(other, Room)가 False일 경우(other이 Room의 인스턴스가 아닐 경우)에는 해당 if문 내부에 있는 또 다른 if문은 실행되지 않고 False를 리턴 후 메소드가 종료되지 않나요? 그렇게 되면 other에 Room의 인스턴스가 주어지지 않더라도 실행 과정에서의 오류 없이 False를 리턴할 것 같은데 왜 오류가 발생하는 건지 궁금합니다.

아니면 교수님께서는 의도했던 인자 값이 주어지지 않았음에도 의도한 인자 값이 주어졌을 때에도 나올 수 있는 결과 값인 False가 출력되는 상황을 실행 과정에서의 오류라고 표현하신 걸까요?