[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) 호출 시에 각각 사용됩니다.

이러한 특수 메서드들을 사용하여 파이썬 클래스를 보다 유연하고 강력하게 만들 수 있습니다.

더 많은 정보를 원하시면 파이썬 공식 문서를 참고하세요.