CLASS
class 라는것은 과자틀
과자틀로 찍어낸 쿠키가 인스턴스(=객체)다.
__init__함수는 인스턴스 실행과정에서 무조건 실행되는 함수
__init__ 함수
class에 __init__메소드 사용 시, 인스턴스를 생성할 때 해당 메소드 실행..
class CookieFrame():
def __init__(self, name):
print(f"생성 된 과자의 이름은 {name} 입니다!")
self.name = name
cookie1 = CookieFrame("cookie1") # 생성 된 과자의 이름은 cookie1 입니다!
cookie2 = CookieFrame("cookie2") # 생성 된 과자의 이름은 cookie2 입니다!
class의 상속
클래스를 생성할 때 다른 클래스에 선언된 변수, 메소드 등의 기능들을 가져와 사용할 수 있다!
동일한 코드를 여러 클래스에서 사용하거나, 모듈에 내장되어 있는 클래스 변경시 주로 사용
상속해주는 클래스 > 부모 or 슈퍼 클래스
받는 녀석 > 자식 or 서브 클래스
overriding은 상속 관계에서 부모 클래스에서 정의한 메소드를 자식 클래스에서 다시 정의하는 것
>> 이 경우 자식 클래스에서는 재정의한 메소드가 실행
>> 코드 재사용성과 유지보수가 쉽다.
더보기
class Monster():
def __init__(self, hp):
self.hp = hp
def attack(self, damage):
self.hp -= damage
def status_check(self):
print(f"monster's hp : {self.hp}")
class FireMonster(Monster):
def __init__(self, hp):
self.attribute = "fire"
# super()를 사용하면 부모 클래스의 코드를 그대로 사용할 수 있다.
#상속을 해주는 클래스가 super이므로 부모클래스의 init 함수을 실행
# 따라서 부모클래스의 self.hp = hp 코드를 실행시키는 것과 동일
super().__init__(hp)
# 부모 클래스에 존재하는 status_check 메소드를 overriding 한다.
def status_check(self):
print(f"fire monster's hp : {self.hp}")
class IceMonster(Monster):
def __init__(self, hp):
self.attribute = "ice"
super().__init__(hp)
def status_check(self):
print(f"ice monster's hp : {self.hp}")
fire_monster = FireMonster(hp=100)
# FireMonster 클래스에는 attack 메소드가 없지만
# 부모 클래스에서 상속받았기 때문에 별도의 선언 없이 사용 가능
fire_monster.attack(20)
fire_monster.status_check()
ice_monster = IceMonster(hp=200)
ice_monster.attack(50)
ice_monster.status_check()
그 외 오늘 정리한 것
https://codemte.tistory.com/27
'WIL&TIL > TIL' 카테고리의 다른 글
20230328 TIL 3일째 class 다시 공부하는 사람 (0) | 2023.03.28 |
---|---|
20230327 TIL (0) | 2023.03.27 |
20230323 TIL - Python 문법 강의, 연습 문제 풀이 (0) | 2023.03.23 |
20230322 TIL - 연습, 문제 위주 (0) | 2023.03.22 |
20230321 TIL 연습문제 (0) | 2023.03.21 |
댓글