Python 16 - pass, super
2021. 5. 8. 13:48ㆍpython
반응형
#pass
class BuildingUnit(Unit):
def __init__(self, name, hp, location):
pass # 일단은 문제없게끔 pass 해버린다. 미완성 함수여도 pass
# 서플라이 디폿 : 건물, 1개 건물 = 8 유닛.
supply_depot = BuildingUnit("서플라이 디풋", 500, "7시")
def game_start():
print("[알림] 새로운 게임을 시작합니다.")
def game_over(): #pass 는 그냥 말그대로 패쓰~~
pass
game_start()
game_over()
#Super - 자식 클래스에서 부모클래스의 내용을 사용하고 싶을경우 사용
class BuildingUnit(Unit):
def __init__(self, name, hp, location):
Unit.__init__(self, name, hp, 0)
self.location = location #location을 0으로 초기화해서 출력
#아래에 또 다른 초기화 방법 super을 활용하는 방법
class BuildingUnit(Unit):
def __init__(self, name, hp, location):
super().__init__(name, hp, 0) #Unit대신 super()를 입력하고 self는 없이 쓴다.
self.location = location
class Unit:
def __init__(self):
print("Unit 생성자")
class Flyable:
def __init__(self):
print("Flyable 생성자")
class FlyableUnit(Flyable, Unit): # 이 처럼 두개 이상의 부모class를 상속받을경우
def __init__(self): # super를 쓰면 먼저 작성한 class가(Flyable) 출력이된다.
super().__init__()
# 그래서 아래와 같이 super를 쓰지말고 작성해야한다
class FlyableUnit(Flyable, Unit):
def __init__(self): Unit.__init__(self) #이렇게 class를 일일히 작성해줘야 두가지 class 모두가
Flyable.__init__(self) # 출력이 된다.
# 드랍쉽
dropship = FlyableUnit()
반응형
'python' 카테고리의 다른 글
Python 18 - Quiz (0) | 2021.05.10 |
---|---|
Python 17 - 예외처리, 에러발생시키기 (0) | 2021.05.09 |
Python 15 - 메소드 오버라이딩 (0) | 2021.05.07 |
Python 14 - 메소드(method), 상속, 다중상속 (0) | 2021.05.06 |
Python 13 - pickle, Class(Feat_Starcraft) (0) | 2021.05.05 |