본문 바로가기
WIL&TIL/TIL

20230324 TIL - Python 심화 뽀개기

by 코드뭉치 2023. 3. 24.

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

 

자료에서 원하는 걸 초콜릿처럼 꺼내먹는 법 - 인덱싱, 슬라이싱, 관련 함수와 모듈

리스트, 튜플, 문자열 공통 ↓ 인덱싱, 슬라이싱 더보기 a[index] # 인덱스에 해당하는 값을 읽기 a[start:end:step] # 리스트의 일부를 읽기 # ex) [1:10:2] >> 1번째 인덱스부터 10번째 인덱스까지 2칸 간격으

codemte.tistory.com

 

'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

댓글