본문 바로가기
programming/Python

파이썬 클래스 상속 하는 방법 python class inheritance

by 개코 - 개발과 코딩 2021. 11. 12.

파이썬 클래스는 속성 프로퍼티와 동작 메서드를 가진다. 기존의 클래스의 코드를 변경하지 않고 기능을 확장하고 싶다면 상속을 사용하면 된다. 부모 클래스와 자식 클래스의 개념이 여기에서 나온다. 기존에 사용하던 부모 클래스라 한다면 기능을 확장하고 싶을 때 자식 클래스는 부모 클래스를 상속 받아 기능을 확장하고 다양화시킬 수 있다.

파이썬 클래스 상속 하는 방법
python class inheritance

파이썬 프로그래밍 같은 객체지향언어들은 클래스 상속이 가능하다.

부모 클래스의 속성 프로퍼티와 동작 메서드를 자식 클래스는 그대로 받아 사용할 수 있다.

부모 클래스는 템프릿으로써 사용할 수 있다는 말과도 비슷하다.

재사용과 범용성이 커지는 이점이 있다.

이전에 클래스 상속에 대해 간단히 주절주절 해 보았다.

파이썬 부모 클래스 자식 클래스

다시 언급해 본다.

파이썬 프로그래밍에서 클래스에 포함되는 것들이 있다.

클래스 변수와 같은 속성 프로퍼티와 클래스 동작과 같은 메서드이다.

부모 클래스는 이러한 프로퍼티와 메서드를 가지고 있다.

기존에 사용하던 클래스의 사용성과 확장을 위해 자식 클래스를 하나 만든다.

만들어진 자식 클래스가 부모 클래스를 상속 받으면 기능을 더 많이 확장할 수 있다.

파이썬 상속 예제

이제 파이썬 클래스 상속 예제를 만들어 보자.

부모 클래스를 하나 만들어 본다.

이전에 작성한 병사 클래스를 가지고 만들어 보도록 한다.

print('----------')

#- 클래스부분
class pythonParentClass : #-{

    def __init__(this, soldier, hp, weapon, fire) : #-{
        this.SOLDIER = soldier
        this.HP = hp
        this.WEAPON = weapon
        this.FIRE = fire
    #-}

#-}

#- 코드부분

ParentCls = pythonParentClass("병사", 100, "Gun", "10")

vValue = ParentCls.SOLDIER
print("군인", type(vValue), vValue);

vValue = ParentCls.HP
print("체력", type(vValue), vValue);

vValue = ParentCls.WEAPON
print("무기", type(vValue), vValue);

vValue = ParentCls.FIRE
print("공격력", type(vValue), vValue);

print('----------')

위의 코드는 부모클래스이다.

부모클래스는 단독으로도 사용될 수 있기도 하다.

위의 부모클래스를 상속받는 자식클래스를 만들어 본다.

자식클래스는 부모클래스를 상속받아 모든 속성 프로퍼티와 동작 메서드를 모두 사용할 수 있음을 기억하자.

print('----------')

#- 클래스부분
class pythonParentClass : #-{

    def __init__(this, soldier, hp, weapon, fire) : #-{
        this.SOLDIER = soldier
        this.HP = hp
        this.WEAPON = weapon
        this.FIRE = fire
    #-}

#-}

class pythonChildClass(pythonParentClass) : #-{

    pass

#-}

vCls = pythonChildClass("병사", 100, "Gun", "10")

vValue = vCls.SOLDIER
print("군인", type(vValue), vValue);

vValue = vCls.HP
print("체력", type(vValue), vValue);

vValue = vCls.WEAPON
print("무기", type(vValue), vValue);

vValue = vCls.FIRE
print("공격력", type(vValue), vValue);

print('----------')

코드를 보자.

다른 것이 없다.

단지 자식클래스에서 부모클래스를 상속받을 때 인자값으로 부모클래스명을 사용하는 것을 익혀두도록 한다.

결과화면을 보자.

부모클래스를 독자적으로 사용한 것과 같은 결과를 볼 수 있다.

반응형

댓글