본문 바로가기
Programing/Python

클래스 상속, super().__init__() -> 오버로딩

by yooom 2023. 9. 25.

Parents 클래스와 Children 클래스를 만들어서 부모 클래스를 상속해보자.

클래스를 상속하면 반복적인 함수를 작성하지 않고 잠깐 빌려쓸 수 있기 때문에 간편해진다. 

class Parents:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def get_name(self):
        print(f'제 이름은 {self.name}입니다.')
        
    def get_age(self):
        print(f'제 나이는 {self.age}살 입니다.')

 

 

일단 Parents 클래스를 정의하자,

parents_a = Parents('이수지', 50)

parents_a.get_name()  # 제 이름은 이수지입니다.
parents_a.get_age()  # 제 나이는 50살 입니다.

 

 

새로운 객체를 생성해서 함수를 호출할 수 있다.

이제 자녀 클래스를 생성해보자

class Children:
    def __init__(self, name, age, height):
        self.name = name
        self.age = age
        
    def get_name(self):
        print(f'제 이름은 {self.name}입니다.')
    
    def get_age(self):
        print(f'제 나이는 {self.age}살 입니다.')
    
    def get_height(self):
        print(f'제 키는 {self.height}cm 입니다.')

 

 

이렇게 get_name, get_age 함수가 작성돼있다면 불필요한 반복이라 볼 수 있다.

Parents 클래스에 작성된 get_name, get_age를 받아와서 그대로 사용해보자.

class Children(Parents):  # 상속받을 class를 명시
    def __init__(self, name, age, height):
        super().__init__(name,age)  # 외워둘 코드
        self.height = height
        
    def get_name(self):
        print(f'저는 자녀 {self.name}입니다.')
        
    def get_height(self):
        print(f'제 키는 {self.height}cm 입니다.')

 

 

super.__init()__(.....) 을 작성하면 부모 클래스의 속성 및 메소드를 자동으로 불러와 위 클래스에서도 사용이 사능하도록 한다.

children_a = Children('조인성',23,153)

children_a.get_name()  # 저는 대학생 조인성입니다.
children_a.get_age()  # 제 나이는 23살 입니다.

 

728x90

'Programing > Python' 카테고리의 다른 글

Hungaian algorithm  (0) 2023.11.10
행열 transpose - ( zip응용 )  (0) 2023.10.07
Numpy의 boolean 조건으로 index 배열 slicing  (0) 2023.10.03

댓글