Programming

; develop a program

Back-End/Python

[Python] super 함수

Clloud_ 2022. 9. 27. 12:40
반응형

이번 포스팅에서는 파이썬의 super 내장 함수에 대하여 공부를 해보고자 한다.

 

아래의 글을 먼저 보고 오면 이해하는데 도움이 될 것이다.

2022.09.27 - [Python/파이썬 기초] - [Python] 상속(Inheritance)

 

[Python] 상속(Inheritance)

이번 포스팅에서는 파이썬의 상속(Inheritance)에 대하여 공부를 해보고자 한다. 상속(Inheritance) 상속은 기존 클래스를 확장하여 instance 변수나 메소드를 추가하는 방식을 말한다. 이미 존재하는 클

c11oud.tistory.com

 


super 함수

super 함수는 자식 클래스(child class)에서 부모 클래스(parent class)의 인스턴스(instance)를 반환(return) 해주는 함수다.

 

자식 클래스(child class)에서 부모 클래스(parent class)의 메소드를 호출하려면 반드시 호출해야 한다.

super( ).메소드명( ) 

 

기반 클래스의 Instance 메소드를 호출할 때는 super( ).메소드( )
같은 클래스의 Instance 메소드를 호출할 때는  self.메소드( )

 

예제

Person 클래스를 생성하고 함수를 정의한다.

class Person:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print(f"{self.name}이 점심을 먹는다.")

    def get_info(self):
        return f"이름: {self.name}, 나이: {self.age}"

Student 클래스를 생성하고 함수를 정의한다.

메소드를 Person에 정의하고 super 함수를 사용하여 Person 클래스의 메소드를 호출한다.

class Student(Person):

    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def get_info(self):
        name_age = super().get_info()
        return f"{name_age}, 학년: {self.grade}"

Student 객체를 생성하고 속성(attribute) 값들을 조회한다.

super 함수로 불러온 부모 클래스(parent class)  인스턴스(instance)를 반환(return)한다.

s = Student('홍길동', 14, 3)
s.name, s.age, s.grade

s.get_info()

[실행결과]

('홍길동', 14, 3)
'이름: 홍길동, 나이: 14, 학년: 3'

 


반응형