super() 함수에 관한 질문
217
3 câu hỏi đã được viết
안녕하세요 이번 강의를 듣고 있는 수강생입니다. 다름이 아니라 클래스쪽 공부를 지속하다가 질문 사항이 있어서 등록합니다.
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()를 생성하면, 부모 생성자에는 영향이 없는것이 맞나요?
Câu trả lời 3
0
답변 정말 감사합니다!
한가지만 더 여쭤봐도 될가요?
예시 자료에서 보여주신 것 중에 'ChildA' ,'ChildB'는 표현 방식만 다를 뿐 다른 차이점이 없는건가요?
그리고 제가 올린 예시 자료 또한 'super().__init__(a,b)' 또한 ChildA' ,'ChildB 표현 방식만 다를 뿐 동일하게 작동하는게 맞는건가요?
직접 쳐서 확인해봤는데 결과 값은 같아서요
알려주시면 감사하겠습니다 ㅠㅠ
0
좋은 질문입니다.
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()
맥북에서 아이패드로 연결해서 보려고 하면 화면이 안뜹니다.
0
7
1
인스턴스 변수 문의
0
56
1
챕터 03_04 (튜플) 교육자료
0
56
2
Package(3-1) Sub 폴더 자료
0
47
1
아톰 출력 안됨
0
85
2
강의자료 메일 발송 요청 드립니다.
0
90
1
강의자료 메일로 보내주실 수 있으실까요?
1
59
0
Iterable 요소는 리스트로 작성해야하는 것 맞나요?
1
83
2
강의자료 부탁드립니다
0
76
2
if Flase: print('Bad')
0
76
1
=와 == 의 차이
0
93
1
functions 함수 섭들을려고하는데요
0
74
1
강의자료 부타드리겠습니다!
0
62
0
VSCODE에 VIEW에서 SELECTED INTERPRETER조회가 안됩니다.
0
71
1
강의자료 부탁드립니다.
0
59
0
dict의 Key를 바꾸는 방법
0
82
1
강의자료부탁드립니다
0
72
1
run withount 디버깅 및 F5+ctrl이 안먹혀요
0
69
1
강의 자료와 예정 다운로드
0
80
2
객체지향 vs 함수형
0
66
1
어렵네요 설정도
0
97
1
설정이 잘 된건지
0
55
1
맥 os vscode 설정 - python interpreter select
0
115
1
강의자료 부탁드립니다. mytoughgirl@naver.com 입니다.
0
49
1

