작성
·
143
2
안녕하세요 강의 열심히 듣고있습니다. 공부하다가 이해가 안가는 부분이 생겨서 질문을 남기게 되었습니다.
이번 강의에서 class BigNumberError를 정의하고 BigNumberError의 입력값으로 에러 구문을 받은 다음 except BigNumberError as err:를 통해 err변수에 그 에러 구문을 저장하는 내용이 있었는데요,
클래스 정의에서 단지 에러 구문을 입력값으로 주었을 뿐(self.msg에 저장) 해당 에러 구문을 반환(?)하는 내용이 class에 정의가 되어있지 않은데 어떻게 에러 구문이 as와 함께 사용시 뒤에 오는 변수에 저장되는건가요?
답변 1
2
Exception 이라는 클래스를 상속하였기 때문에 그렇습니다. 그리고 강의에서 정의한 __str__ 함수에 의해서 print(err) 을 하게 되면 self.msg 값이 출력해준답니다. (실제로는 __init__ 과 __str__ 을 따로 정의해주지 않아도 Exception 클래스를 상속하면 앞 내용을 자동으로 처리해준답니다)