Python - class 상속

컴퓨터/Python

728x90
반응형

Python에서 class의 상속

다른 객체지향 언어처럼 Python에서도 클래스를 상속하여 class의 개념을 확장시킬 수 있습니다. 

파이썬에서도 상속관계에서 부모클래스와 자식 클래스라고 부릅니다.

본 포스트에서 상속을 하기 위한 문법에 대하여 다루도록 하겠습니다.

 

 

어떻게 상속 class를 만드는가?

class Human:
    pass

class Man(Human):
    pass

예제처럼 단순하게 class를 선언할 때 괄호()를 이용하여 class를 상속받을 수 있습니다.

 

 

상속받은 변수나 메서드에 접근하려면?

기본적으로 사용하는 메서드인 생성자로 예를 들자면 다음과 같이 사용할 수 있습니다.

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

class Man(Human):
    def __init__(self,name,age,gender):
        self.gender = gender
        self.name = name
        self.age = age

또는

class Man(Human):
    def __init__(self,name,age,gender):
        self.gender = gender
        Human.name = name
        Human.age = age

하지만 이런식으로 다시 한번 재정의하는 것은 상속으로서의 장점이 줄어듭니다. 

 

부모 클래스를 활용하기 - super()

다른 객체지향 언어처럼 파이썬에서도 super()를 사용하여 조금 더 다양성과 확장성을 늘릴 수 있게 됩니다.

위처럼 불필요한 재정의를 줄일 수 있게됩니다.

 

class Man(Human):
    def __init__(self,name,age,gender):
        self.gender = gender
        super().__init__(name,age)

이렇게 super()를 이용하여 부모 클래스의 메서드를 호출하도록 하여 불필요한 재정의를 하지 않을 수 있습니다.

 

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :