728x90
반응형
https://newbie-developer.tistory.com/146
파이썬. 클래스 상속과 생성자에 대하여. 그리고 super에 대하여
자식 클래스에서 따로 생성자를 선언하지 않으면 자식 객체를 생성하면 자동으로 부모클래스의 생성자를 실행한다. class paraent(): def __init__(self,input1): print("부모 생성자 실행. 인풋 파라미터는")
newbie-developer.tistory.com
요약
class ChildError(BaseError):
default_code = CODE1
class BaseError(APIException):
status_code = status.HTTP_400_BAD_REQUEST
default_detail = ""
default_code = SERVER_FAIL_CODE
code_key = "error_code"
def __init__(self, detail=None, code=None):
detail = detail if detail is not None else self.default_detail
self.detail = {"message": detail, self.code_key: self.default_code}
BaseError를 상속받는 ChildError를 다른 곳에서 사용하고 싶은 경우
- 멤버 변수로 정의한 default_code값은 Override 된다.
- ChildError에 생성자가 없으므로 자동으로 부모의 생성자를 호출한다. ChildError(detail="디테일 바꾸기")로 주면 부모의 생성자를 호출하여 ChildError의 detail = "디테일 바꾸기"로 할당된다.
- ChildError도 생성자 __init__을 사용하여 커스터마이징하고 싶다면, ChildError의 생성자에 super().__init__을 넣어주어야만 한다.
728x90
반응형
'Programming-[Backend] > Python' 카테고리의 다른 글
[TIL] python locale, OS의 locale (0) | 2023.02.13 |
---|---|
[링크] python circular import 해결 - import time, runtime (0) | 2023.01.19 |
Python PIL _getexif, TAGS 적용, AttributeError, JPEG, TIFF 차이 (0) | 2022.12.30 |
[TIL] python 빈 리스트/None check, django test request값 안 변할 때 -> 테스트 메서드 이름 중복 (0) | 2022.11.02 |
[탐험] ffmpeg-ffprobe로 AWS S3에 있는 Video 파일 메타데이터 추출: 비디오 스트림, AWS Presigned URL 방식 이해 2 (0) | 2022.11.01 |