Python 요약

Python 요약 정리(개념 및 함수/메서드) : 클래스, 상속

룻밤 2024. 10. 8. 12:07

 

클래스

객체(=인스턴스)를 구현하기 위한 설계도, 객체가 가져야할 속성(데이터)와 수행할 행동(메서드)에 대한 정의가 포함카멜 케이스 스타일 선호 ( 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__)
특정 연산자나 함수 호출될때 자동으로 실행
객체 특정 동작 정의하거나 오버라이드할 때 사용