강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

콘소메님의 프로필 이미지
콘소메

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

클래스는 뭐예요?

상속 관련 질문

작성

·

235

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):

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

콘소메님의 프로필 이미지
콘소메

작성한 질문수

질문하기