[python] 클래스의 특수 메서드 활용
Python 클래스는 특수 메서드를 사용하여 객체의 생성, 연산자 오버로딩, 컨텍스트 관리 등 다양한 기능을 지원합니다. 이러한 특수 메서드를 적절히 활용하여 클래스를 정의하고 활용하는 방법에 대해 알아봅시다.
1. __init__
메서드
__init__
메서드는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 메서드입니다. 이 메서드를 사용하여 객체의 초기화 작업을 수행할 수 있습니다.
class MyClass:
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
obj = MyClass(10, 20)
2. 연산자 오버로딩
특수 메서드를 사용하여 연산자의 동작을 재정의할 수 있습니다. 예를 들어, __add__
메서드를 정의하여 덧셈 연산자의 동작을 재정의할 수 있습니다.
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(1, 2)
v2 = Vector(3, 4)
result = v1 + v2
3. 컨텍스트 관리
with
문과 함께 사용되는 __enter__
와 __exit__
메서드를 정의하여 컨텍스트 관리 기능을 지원할 수 있습니다.
class MyResource:
def __enter__(self):
print("Entering the resource")
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the resource")
with MyResource() as resource:
# 작업 수행
pass
4. 기타 특수 메서드
그 외에도 __str__
, __repr__
, __len__
등 다양한 특수 메서드를 활용하여 객체의 문자열 표현, 출력 형식, 길이 등을 지원할 수 있습니다.
Python 클래스의 특수 메서드는 다양한 기능을 지원하며, 이를 활용하여 보다 유연하고 강력한 객체 지향 프로그래밍을 구현할 수 있습니다.
참고 문헌: Python 공식 문서