inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bắt đầu lập trình: Giới thiệu về Python (Inflearn Original)

super() 함수에 관한 질문

233

pigi-1004

3 câu hỏi đã được viết

0

안녕하세요 이번 강의를 듣고 있는 수강생입니다. 다름이 아니라 클래스쪽 공부를 지속하다가 질문 사항이 있어서 등록합니다. 

super() 기능에 대해서 궁금해서 밑에 예시 자료 같이 씁니다. 

class Test_Parent:

    def __init__(self,a,b):

        self.a = a

        self.b = b

    def sum(self):

        return self.a+self.b

class Test_Child(Test_Parent):

    def __init__(self,a,b):

        super().__init__(a,b) => #Test_Parent 내 생성자 변수를 같은 형식으로 상속.

    def sum(self):

        return super().sum() => #Test_Parent내에 sum 함수내 self.a+self.b를 super().sum()으로 상속. 

질문.

1.  제가 나름 이해한 토대로 주석을  넣었는데 제가 제대로 이해 한 것이 맞는건가요? 

2. 사실상 이 예시에는 나오지 않지만 super()를 쓰지 않고 그냥 자식 객체를 통해서 불러올 수도 있는데, 굳이 super() 함수를 사용하는 이유가 매서드 오버라이딩을 좀 더 용이하기 위해서, 또는 타인이 보았을 때 매서드 간에 확실한 상속 관계를 나타내기 위해서 사용하는건가요?

3. 자식 생성자에 super()를 생성하면, 부모 생성자에는 영향이 없는것이 맞나요?  

python

Câu trả lời 3

0

niceman

네 동일합니다.

0

pigi-1004

답변 정말 감사합니다!

한가지만 더 여쭤봐도 될가요?

예시 자료에서 보여주신 것 중에 'ChildA' ,'ChildB'는 표현 방식만 다를 뿐 다른 차이점이 없는건가요?

그리고 제가 올린 예시 자료 또한  'super().__init__(a,b)' 또한 ChildA' ,'ChildB 표현 방식만 다를 뿐 동일하게 작동하는게 맞는건가요?

직접 쳐서 확인해봤는데 결과 값은 같아서요  

알려주시면 감사하겠습니다 ㅠㅠ

0

niceman

좋은 질문입니다.

1. 맞습니다.

2. 다중 상속일 경우에는 super()메소드를 직접적으로 호출 할 수 있습니다.

3. 네 없습니다. 부모생성자에서 초기값을 받을 경우 super를 사용할 수 있습니다.

class Base(object):
    def __init__(self):
        print "Base created"

class ChildA(Base):
    def __init__(self):
        Base.__init__(self)

class ChildB(Base):
    def __init__(self):
        super(ChildB, self).__init__()

ChildA() 
ChildB()

Python: Select Interpreter 오류

0

32

1

54강 4분 41초에서 질문 있어요.

0

51

1

import

0

35

1

45강 예제4번에서 질문 있어요!

0

47

1

45강 강의 10분 03초 내용에서 x + 1 을 하는 이유는 뭔가요?

0

41

1

3강, 7강 화면이 안나옵니다. 그냥 검은화면으로만 노출되요;;

0

43

1

41강 1분 39초 영상에서 import test_module이 조회 안 돼요.

0

48

1

29강 while(3-1) 5분 20초 강의 영상 질문

0

44

0

pcskjs@naver.com

0

53

1

인터프리터 설정이 안됩니다.

1

68

1

Python formatter 설치

0

38

1

자료 다운로드 위치 확인 부탁드립니다.

0

44

2

보라색 예약어

0

42

1

#을 붙이는 이유

0

41

1

실행이 안 되는데요.

0

51

1

print 문법 실행 안 돼요.

0

45

1

영문 계정

0

41

1

맥북에서 아이패드로 연결해서 보려고 하면 화면이 안뜹니다.

0

34

1

인스턴스 변수 문의

0

76

1

챕터 03_04 (튜플) 교육자료

0

84

2

Package(3-1) Sub 폴더 자료

0

66

1

아톰 출력 안됨

0

111

2

강의자료 메일 발송 요청 드립니다.

0

117

1

강의자료 메일로 보내주실 수 있으실까요?

1

76

0