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
'프로그래밍언어 > 파이썬[초급]' 카테고리의 다른 글
[파이썬][초급] Chapter47. 예외 활용과 견고한 프로그램 (0) | 2025.05.17 |
---|---|
[파이썬][초급] Chapter46. 객체 직렬화와 파일 저장 (0) | 2025.05.17 |
[파이썬][초급] Chapter44. 캡슐화와 접근 제어자 (0) | 2025.05.17 |
[파이썬][초급] Chapter43. 상속과 오버라이딩 (0) | 2025.05.17 |
[파이썬][초급] Chapter42. 객체지향 프로그래밍 기초 (0) | 2025.05.17 |