반응형
이번 포스팅에서는 파이썬의 super 내장 함수에 대하여 공부를 해보고자 한다.
아래의 글을 먼저 보고 오면 이해하는데 도움이 될 것이다.
2022.09.27 - [Python/파이썬 기초] - [Python] 상속(Inheritance)
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'
반응형
'Back-End > Python' 카테고리의 다른 글
[Python] 주요 특수 메소드 – 객체 생성/소멸 (0) | 2022.09.28 |
---|---|
[Python] 특수 메소드 (0) | 2022.09.28 |
[Python] 메소드 재정의 (Method Overriding) (0) | 2022.09.27 |
[Python] 상속(Inheritance) (0) | 2022.09.27 |
[Python] 정보 은닉(Information Hiding) (0) | 2022.09.27 |