클래스 변수
: 인스턴스들이 모두 공유받는 변수. 아래 예시를 보면 wolf, shark, dragon 의 몬스터가 존재한다.
각각의 몬스터들이 공통적으로 가지고 있는 특징으로 name, health, attack 이 있다는 점이다.
이를 Monster라는 클래스에서 공유해주고 있다. 즉, Monster 라는 클래스가 클래스 변수의 역할을 하고 있다.
# 상속
# : 클래스들에 중복된 코드를 제거하고 유지보수를 편하게 하기 위해서 사용.
# 클래스 변수
# : 인스턴스들이 모두 공유받는 변수.
import random
# 부모클래스
class Monster:
max_num = 1000
def __init__(self,name,health,attack):
self.name = name
self.health = health
self.attack = attack
Monster.max_num -= 1
def move(self):
print(f'[{self.name}] 지상에서 이동하기.')
# 자식클래스
class Wolf(Monster):
pass
class Shark(Monster):
def move(self): # 메서드 오버라이딩
print(f"[{self.name}] 헤엄치기")
class Dragon(Monster):
# 생성자 오버라이딩
def __init__(self, name, health, attack):
super().__init__(name,health,attack) #부모의 생성자를 불러옴.
self.skills = ("불뿜기","꼬리치기","날개치기")
def move(self): # 메서드 오버라이딩
print(f"[{self.name}] 날기")
def skill(self):
print(f"{self.name} 스킬 사용 {self.skills[random.randint(0,2)]}")
wolf = Wolf("울프", 1500, 200)
wolf.move()
print(wolf.max_num)
shark = Shark("샤크", 3000,400)
shark.move()
print(shark.max_num)
dragon = Dragon("드래곤", 8000, 800)
dragon.move()
dragon.skill()
print(dragon.max_num)
[Python] 패키지 (0) | 2022.06.04 |
---|---|
[Python] 모듈 (0) | 2022.06.04 |
[Python] 상속 (0) | 2022.06.02 |
[Python] 생성자 (0) | 2022.06.02 |
[Python] 클래스 (0) | 2022.06.02 |