클래스
객체(=인스턴스)를 구현하기 위한 설계도, 객체가 가져야할 속성(데이터)와 수행할 행동(메서드)에 대한 정의가 포함카멜 케이스 스타일 선호 ( ex: class ClassName: )
class Unit:
def __init__(self, health, position): # init 메서드
self.health = health # 속성
self.position = position # 속성
def move(self): # 클래스 메서드
self.position = self.position + 1
- __init__
클래스의 속성을 만들때 __init__(self) 메서드를 정의하고, 그안에 self.변수명 = 값 형태로 변수 선언
클래스의 생성자로 객체가 생성될 때 자동으로 호출됨.
self 파라미터 우선 정의 객체를 생성할 때 파라미터를 받을수 있는데 self 뒤에 정의
- 클래스 속성
'self.변수명 = 값' 형태
- 클래스 메서드
클래스나 객체가 수행할 기능, 동작을 정의한 함수
클래스 내부에서 정의되고, 객체를 통해 호출
def 키워드, 첫번째 파라미터는 self
knight = Unit(health=100, position=10) # 클래스 객체 생성
객체명.속성명 # 객체의 속성 접근
객체명.메소드명(파라미터) # 객체 메소드 실행
상속
자식 클래스가 부모로부터 속성, 메소드를 물려받아 필요에 따라 확장하거나 변경 가능
# 자식 클래스: Knight
class Knight(Unit): # class 자식(부모):
def __init__(self, health, position, strength):
super().__init__(health, position)
self.strength = strength # 기사 속성 추가
def fire_attack(self):
print('찌르기')
# 전사 객체 생성
kn = Knight(100, 0, 15)
print(kn.position)
- super()
부모 클래스
super().__init__() = 자식 클래스의 __init__() 메서드 내부에서 실행해서 부모 클래스 속성 초기화
class 자식(부모)
- 메소드 오버라이딩
상속받은 메소드를 자식 클래스에서 재정의, 부모 클래스 기본 기능과 달리 변경 ㅇ
다형성 = 동일 이름의 메소드나 함수가 다양한 형태로 동작 가능한 능력
- 매직 메서드
파이썬 클래스에 특별한 동작 부여하는 메서드(이중 밑줄 ex. __init__)
특정 연산자나 함수 호출될때 자동으로 실행
객체 특정 동작 정의하거나 오버라이드할 때 사용
'Python 요약' 카테고리의 다른 글
Python 요약 정리(개념 및 함수/메서드) : 집합 ~ 리스트 컴프리헨션, 람다 (0) | 2024.10.07 |
---|