class(__init__, self, super)

Jeonghwan Yoon·2025년 3월 30일

클래스란?

  • 객체(Object)를 생성하기 위한 틀(Template)
  • 변수(속성)와 함수(메서드)를 묶어서 하나의 구조로 정의
class ClassName:
    def method(self):
        pass

생성자 __init__()

항목설명
역할객체 생성 시 자동 호출되는 함수
목적인스턴스 변수 초기화 (초기 세팅)
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
  • init 함수는 클래스를 선언하는순간 실행이 된다.
  • 객체가 생성될 때 실행됨
  • __init__() 안의 self.name은 객체의 속성, name은 전달된 값

self

항목설명
의미인스턴스 자기 자신을 가리킴
용도인스턴스의 변수/메서드에 접근할 때 사용
def set_name(self, name):
    self.name = name
  • 메서드는 항상 self를 첫 번째 인자로 가짐
  • self.name: 인스턴스 변수에 접근

상속과 super()

항목설명
super()부모 클래스의 메서드 호출 시 사용
용도부모 클래스의 생성자나 메서드를 자식 클래스에서 호출
class Animal:
    def __init__(self, name):
        self.name = name

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)  # 부모 생성자 호출
        self.breed = breed
  • super()는 부모 클래스에 접근할 때 사용
  • 중복 제거 및 유지보수 용이

클래스 예시 전체

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name}가 소리를 냅니다")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed

    def speak(self):
        print(f"{self.name}는 멍멍 짖어요 ({self.breed})")

dog1 = Dog("초코", "푸들")
dog1.speak()

출력 결과

초코는 멍멍 짖어요 (푸들)

핵심 요약

키워드의미설명
class클래스 정의 키워드틀(template)을 만들기 위함
init생성자 메서드객체 생성 시 자동 호출
self자기 객체 참조인스턴스의 속성 접근용
super()부모 클래스 참조부모 메서드 호출용

자주 나오는 문법 요약

문법설명
obj = ClassName()클래스 인스턴스 생성
self.attr = val객체 내부에 속성 저장
super().__init__()부모 클래스 생성자 호출
클래스 상속class SubClass(ParentClass):
profile
안녕하세요.

0개의 댓글