2021. 1. 7. 03:07ㆍPython
이번에는 파이썬에서 클래스를 활용한 상속과 다중상속에 대해 알아보겠습니다.
먼저 상속에 대해 알아보기전에 전에 활용했던 스타크래프트 유닛 생성의 예시를 가져오겠습니다.
먼저 유닛을 생성하는 클래스를 아래와 같이 작성해 주겠습니다.
이는 Unit 대해 이름,체력을 정의한 클래스 입니다.
이는 일반유닛이라고 설정한 클래스이고,
여기서 공격유닛이라는 클래스를 만들어 보겠습니다.
공격유닛이란 일반유닛안에 속해있습니다.
따라서 공격유닛을 일반유닛에서 상속받는다고 표현하는데 이를 아래와 같이 입력해 보겠습니다.
AttackUnit으로 클래스를 설정하고 ()안에 상속되는 클래스인 Unit을 설정합니다.
이후 __init__()안에는 AttackUnit에 필요한 내용들을 정의해주고
Unit.__init()는 Unit이라는 클래스에 있는 내용을 불러온다는 의미입니다.
그 이후 damage는 Unit에 없는 내용이기 때문에 따로 self.damage=damage를 입력해 주는 것입니다.
이후 유닛을 하나 생성해보겠습니다.
이는 유닛중에서도 새로만든 클래스인 공격유닛클래스를 사용하여 공격유닛인 파이어뱃을 만들어 보았습니다.
이를 출력해 보면 아래와 같이 공격유닛이 나오는 것을 확인해볼 수 있습니다.
이어서,다중속성에 대해 알아보겠습니다.
그냥 공격유닛에 대한 클래스가 아닌, 이번에는 공중 공격 유닛에 대한 클래스를 만들어 보려 합니다.
먼저 날수 있는 유닛에 대한 클래스를 새로 생성해 보려 합니다.
위와 같이 Flyable이라는 날수있는 기능을 가진 클래스를 생성해 보았습니다.
그리고 날수도 있고, 공격도 가능한 공중공격유닛이라는 클래스를 새로 생성해보겠습니다.
이경우 Flyable이라는 클래스와 AttackUnit이라는 클래스 2가지를 상속받아 클래스를 생성할 수 있습니다.
방법은 위와 같이 입력하는 것이며, 단순속성할때와 같은 방법으로 설정하면 되는 것입니다.
마지막으로 공중공격 유닛을 생성해보겠습니다.
뮤탈과 발키리를 생성하였고, 이를 출력해 보면 아래와 같이 다중상속이 올바르게 나온것을 확인할 수 있습니다.
위, 입력문대로 순서대로 코딩을 진행한다면 어려움 없이 속성과 다중속서이 진행될 것이며, 이해를 돕기 위해 다중속성을 간단하게 그림으로 요악한 내요은 아래와 같습니다.
처음 실행한 AttackUnit은 Unit을 상속받았고
FlyableAttackUnit클래스는 AttackUnit과 Flyable을 다중상속 받은것을 쉽게 표현했습니다.
'Python' 카테고리의 다른 글
[Python]부동산 프로그램 Quiz (0) | 2021.01.08 |
---|---|
[Python]스타크래프트 게임하기 (0) | 2021.01.07 |
[Python]파일 입,출력을 활용한 quiz (0) | 2021.01.06 |
[Python]클래스 (0) | 2021.01.06 |
[Python]파일 입력 출력 (0) | 2021.01.05 |