본문 바로가기
Language/Python

[Python] Super() 기초 개념 및 활용 예제 | LIM

by forestlim 2022. 11. 8.
728x90
반응형

✔️ Python Super 란

Super() 함수는 super class, 상속받은 부모 클래스를 호출하는 함수입니다.

 

Super 를 설명하기 전 필수 개념인 상속을 잠깐 살펴보고 넘어가보도록 하겠습니다.

다음과 같이 ParentClass와 ChildClass 두개의 클래스를 만들었을 때, (name, number) argument 가 중복되게 됩니다. 

 

이런 경우 ChildClass 가 ParentClass 를 상속받아 동일한 코드가 반복되는 것을 피할 수 있습니다. 

하지만 코드를 작성 후 다음과 같이 실행하였을 때, 

 

 

다음과 같이 에러가 발생하게 됩니다. score 는 잘 나오나 name과 number를 ChildClass 클래스에서 선언해주지 않았기 때문에 생기는 문제입니다. 이 때 Super() 를 사용하면 문제가 해결됩니다. 즉, Super()는 상속받은 부모 Class 를 가리킨다고 생각하면 됩니다.

 

✔️ Python Super 의 사용예제

ChildClass에 super().__init__() 를 적어줌으로써 super()는 부모 클래스인 ParentClass를 가리키게 됩니다. 매직 메소드 init 안에 name, number argument를 넣어주면 됩니다. 

다음과 같이 모든 결과값이 잘 나오는 걸 확인할 수 있습니다. 

✔️ Python Super 의 사용예제2

위에서처럼 상속받는 argument들을 모두 써주어도 되나 인수가 많아지면 다 적기란 쉽지 않을 것입니다. 그 때는 *args 나 **kwargs 를 적음으로써 부모 클래스의 모든 argument를 상속받을 수 있습니다. 예제에서는 name과 number 를 대체하여 **kwargs 로 적었습니다.

 

 

728x90
반응형

댓글