[Python] 매직 메소드(Magic Method)

Hyein Kim·2022년 2월 21일
0
post-thumbnail

매직 메소드(Magic Method)

클래스 안에 정의된 함수를 우리는 특별히 '메소드(method)'라고 한다. 메서드 중에서 __로 시작해서 __로 끝나는 메소드들이 있는데 이를 매직 메소드 또는 특별 메소드(special method)라고 부릅니다.

  • 매직 매소드는 파이썬에서 사용되고 있는 연산자나 함수를 클래스 내부에 오버로딩한다.
  • 기존에 사용되고 있는 연산자나 함수를 오버로딩하므로, 특수 메소드는 이미 정해진 이름을 사용해야 한다.
  • 메소드 호출 시에는 파이썬에서는 통용되는 연산자와 함수명으로 호출한다.

매직 메소드의 종류

  • __del__() : 인스턴스 삭제
  • __len__() : 인스턴스 길이
  • __repr__() : 인스턴스 출력
  • __str__() : 문자열로 형변환
  • __add__() : +
  • __sub__() : -
  • __mul__() : *
  • __div__() : /
  • __mod__() : %
  • __pow__() : **
  • __eq__() : ==

이외에도 매직 메소드의 종류는 매우 많다. 공식문서에서 확인할 수 있다.

매직 메소드 사용

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def __repr__(self):
        return str(self.name)
      
    def __eq__(self, other):
        return  (self.name == other.age) and (self.age == other.age)
      
    def __add__(self, other):
        return self.age + other.age
      
student1 = Student('짱구', 5)
student2 = Student('철수', 5)

print(student1) # 짱구
print(student1==student2) # False
print(student1+student2) # 10

📗 참고

profile
I'm free

0개의 댓글