본문 바로가기
프로그래밍언어/파이썬[초급]

[파이썬][초급] Chapter45. 클래스의 특수 메서드

by about_IT 2025. 5. 17.
728x90

파이썬 클래스에는 특별한 역할을 하는 메서드들이 있으며, 이를 특수 메서드 또는 매직 메서드(magic method)라고 부릅니다. 대부분 양쪽에 밑줄이 두 개 있는 형태이며, 객체 생성, 연산자 동작, 문자열 표현 등을 제어할 수 있습니다.

● __init__ 생성자

객체가 생성될 때 자동으로 호출되며, 초기 설정을 담당합니다.

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

● __str__ 문자열 표현

print() 함수나 문자열 변환 시 출력 형식을 지정할 수 있습니다.

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

    def __str__(self):
        return f"상품명: {self.name}"

p = Product("노트북")
print(p)  # 상품명: 노트북

● __repr__ 개발자용 표현

디버깅 시 사용되는 표현 방식으로, repr() 함수 호출 시 사용됩니다.

● 연산자 오버로딩: __add__, __sub__ 등

객체 간 연산을 직접 정의할 수 있습니다.

class Point:
    def __init__(self, x):
        self.x = x

    def __add__(self, other):
        return Point(self.x + other.x)

    def __str__(self):
        return f"x={self.x}"

a = Point(3)
b = Point(4)
print(a + b)  # x=7

● __len__ 길이 반환

len() 함수 호출 시 실행되는 메서드입니다.

class MyList:
    def __init__(self, data):
        self.data = data

    def __len__(self):
        return len(self.data)

● 기타 특수 메서드

  • __getitem__: 인덱싱 지원
  • __eq__, __lt__: 비교 연산자 오버라이딩
  • __call__: 함수처럼 호출 가능한 객체 만들기

● 마무리

이번 장에서는 파이썬 클래스의 특수 메서드에 대해 배웠습니다. 이 메서드들을 활용하면 사용자 정의 객체를 파이썬의 기본 동작처럼 작동하도록 만들 수 있어, 객체 지향 프로그래밍의 확장성과 표현력을 크게 높여줍니다. 다음 장에서는 파일과 객체를 직렬화하는 방법을 배워보겠습니다.

728x90