클래스
- 클래스의 매개변수와 호출할 시의 매개변수는 같아야 한다(아니면 에러).
- 멤버변수: 클래스 내에서 생성된 변수
__init__
은 기본 생성자
self
는 자기 자신, 자기 자신을 통해서 변수에 접근
class Unit:
def __init__(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
print(self.name, self.hp, self.damage, sep=", ")
marine1 = Unit("마린", 100, 50)
마린, 100, 50
상속
class Unit:
def __init__(self, name, hp):
self.name = name
self.hp = hp
class AttackUnit(Unit):
def __init__(self, name, hp, damage):
Unit.__init__(self, name, hp)
self.damage = damage
def attack(self, location):
print(location)
다중 상속
- 다중 상속 가능
- 다중 상속 시 상속하는 클래스들의 생성자를 작성하여 호출
class FlyAttackUnit(AttackUnit, Fly):
def __init__(self, name, hp, damage, fly):
AttackUnit.__init__(self, name, hp, damage)
Fly.__init__(self, fly)
super
super를 사용하여 부모 생성자를 호출
class AttackUnit(Unit):
def __init__(self, name, hp, damage):
super().__init__(name, hp)
self.damage = damage
다중 상속
class FlyableUnit(Flyable, Unit):
def __init__(self):
super().__init__()
dropship = FlyableUnit()
모든 부모 클래스에서 초기화가 필요하다면
class FlyableUnit(Flyable, Unit):
def __init__(self):
Unit.__init__(self)
Flyable.__init__(self)
Unit 생성자
Flyable 생성자
pass
class FlyAttackUnit(Unit):
def __init__(self, name, hp, damage):
pass