• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

상속 관련 질문

20.05.24 16:14 작성 조회수 154

1

#02.객체변수 value가 100이상 값은 못가지도록 제한하는
클래스를 만들자
class Calculator:
    def __init__(self):
        self.value = 0

    def add(selfval):
        self.value += val

class MaxLimitCalculator(Calculator):
    def __init__(self,**kwargs):
         super().__init__(**kwargs)
    def add(self,val):
        self.value += val
        if self.value>100:
            self.value = 100
     

cal = MaxLimitCalculator()
cal.add(50# 50 더하기
cal.add(60# 60 더하기

print(cal.value) # 100 출력
<질문>
위 코드에서 Calculator를 상속받는 클래스 작성시
수업에서 배운 것처럼
def __init__(self,**kwargs):
         super().__init__(**kwargs)
이 부분을 입력하지 않아도 상속이 됩니다.
저 부분(특히 super())을 써야지만 상속이 되는 것으로
이해했는데, 쓰지 않아도 상속이 되는 건가요?
답변 기다리겠습니다. 감사합니다~

답변 1

답변을 작성해보세요.

0

super() 함수는 상속시 부모 클래스의 초기화 함수 __init__() 를 호출하는 역할을 하는 것일뿐 상속 자체와는 상관이 없습니다. 

class MaxLimitCalculator(Calculator):

위처럼 상속은 클래스 선언시 괄호 안에 상속받을 클래스를 명시하면서 이뤄집니다.