본문 바로가기
관리자

Programming-[Backend]/Python

[TIL][링크] 파이썬 부모 생성자 호출, __init__ BaseError 상속

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
반응형