[python] 클래스의 특수 메서드
파이썬 클래스에는 특수한 용도로 사용되는 매직 메서드(magic method)가 있습니다. 이러한 특수 메서드들은 이중 언더스코어(__
)로 시작하고 끝나는 이름을 가지고 있습니다. 이러한 메서드들은 객체의 생성, 연산자 오버로딩, 속성 접근 등과 관련된 동작을 정의할 수 있습니다.
__init__
메서드
__init__
메서드는 객체가 생성될 때 자동으로 호출되는 메서드입니다. 이 메서드를 사용하여 객체의 초기화를 수행할 수 있습니다.
예시:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
rect = Rectangle(5, 10)
연산자 오버로딩 메서드
파이썬에서 연산자 동작을 재정의하기 위해서 특정한 메서드를 사용할 수 있습니다. 예를 들어, __add__
메서드를 오버로딩하여 덧셈 연산을 정의할 수 있습니다.
예시:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(1, 2)
p2 = Point(3, 4)
result = p1 + p2
__str__
및 __repr__
메서드
__str__
메서드는 str()
함수가 호출될 때, __repr__
메서드는 repr()
함수가 호출될 때 사용되는 메서드입니다. 주로 객체를 문자열로 표현하는 용도로 사용됩니다.
예시:
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return f"{self.title} by {self.author}"
def __repr__(self):
return f"Book({self.title}, {self.author})"
book = Book("Python Programming", "John Doe")
print(str(book))
print(repr(book))
위의 예제에서 __str__
메서드는 str(book)
호출 시, __repr__
메서드는 repr(book)
호출 시에 각각 사용됩니다.
이러한 특수 메서드들을 사용하여 파이썬 클래스를 보다 유연하고 강력하게 만들 수 있습니다.
더 많은 정보를 원하시면 파이썬 공식 문서를 참고하세요.