Python 16 - pass, super

2021. 5. 8. 13:48python

반응형

#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()

 

반응형