본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 15일차 TIL_class 객체(object) 다루기

by thriveview 2023. 8. 29.

오늘의 학습 키워드:

class : __init__ 함수 / 상속 / 

class 객체(object) 다루기

 

공부한 내용 본인의 언어로 정리하기: 

__init__ 는 생성자(Constructor)라고 부르기도 한다.

사용자가 따로 호출하지 않아도 클래스 객체를 생성할 때 자동으로 호출이 되는 부분

python의 class 상속이란, 클래스를 생성할 때 다른 클래스에 선언된 변수, 메소드 등의 기능들을 가져와 사용할 수 있도록 해주는 기능

동일한 코드를 여러 클래스에서 조금씩 수정해 사용하거나 모듈에 내장되어 있는 클래스를 변경할 때 주로 사용한다.

 

오늘의 회고:

__init__ 함수

↓상속을 사용하면 코드를 간소화할 수 있다.↓

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()를 사용하면 부모 클래스의 코드를 그대로 사용할 수 있습니다.
        # 해당 코드는 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()

 

class 객체(object) 다루기

class = 과자틀

class를 사용해서 만들어진 과자 = 인스턴스(instance) = 객체(object) 

 

객체에서 사용 가능한 메소드들은 함수의 리턴 타입을 확인하는 방법과 동일하게 검색, docstring, 구현 코드 등을 확인하여 찾을 수있다

 

12시간 중 얼마나 몰입했는지:

10%

 

더 나은 미래를 위해 내일 어떤 공부를 진행할 것인지: