elevne's Study Note

Python Class - Magic Method 본문

Backend/Python + FastAPI

Python Class - Magic Method

elevne 2023. 3. 30. 12:31

Python Class 에는 Magin Method 라는 클래스 내부에 미리 정의된 특별한 메서드들이 있다. 이들은 해당 클래스 객체의 생성, 비교, 조작 및 표현에 사용된다. 이번에는 그 매직메서드들을 몇 가지 정리해보았다.

 

 

 

Method Description
__init__(self, ...) 클래스의 인스턴스가 생성될 때 호출되는 메서드. 객체를 초기화하고 초기 상태를 설정하는데 사용
__repr__(self) 객체를 나타내는 공식적인 문자열을 반환하는 메서드. 일반적으로 해당 객체를 생성하는 코드를 반환하도록 작성됨
__str__(self) 객체를 나타내는 비공식적인 문자열을 반환하는 메서드. 일반적으로 객체의 속성 값을 문자열로 변환하여 반환하도록 작성됨
__eq__(self, other) 두 객체가 동등한지 여부를 비교하는 메서드. 일반적으로 객체의 속성 값이 모두 동일할 때 True 를 반환하도록 작성됨
__lt__(self, other) 두 객체를 비교하여 첫 번째 객체가 두 번째 객체보다 작은지 여부를 반환하는 메서드. 일반적으로 객체의 특정 속성 값을 기준으로 비교하도록 작성됨
__gt__(self, other) 두 객체를 비교하여 첫 번째 객체가 두 번째 객체보다 큰지 여부를 반환하는 메서드. 일반적으로 객체의 특정 속성 값을 기준으로 비교하도록 작성됨
__le__(self, other) 두 객체를 비교하여 첫 번째 객체가 두 번째 객체보다 작거나 같은지 여부를 반환하는 메서드. 일반적으로 객체의 특정 속성 값을 기준으로 비교하도록 작성됨
__ge__(self, other) 두 객체를 비교하여 첫 번째 객체가 두 번째 객체보다 큰거나 같은지 여부를 반환하는 메서드. 일반적으로 객체의 특정 속성 값을 기준으로 비교하도록 작성됨
__add__(self, other) 두 객체를 더하는 연산을 정의하는 메서드. 일반적으로 두 객체의 속성 값을 더한 값을 반환하도록 작성됨
__sub__(self, other) 두 객체를 빼는 연산을 정의하는 메서드. 일반적으로 큰 객체에서 작은 객체를 빼고 결과를 반환하도록 작성됨
__mul__(self, other) 두 객체를 곱하는 연산을 정의하는 메서드. 일반적으로 두 객체의 속성 값을 곱한 값을 반환하도록 작성됨
__truediv__(self, other) 두 객체를 나누는 연산을 정의하는 메서드. 일반적으로 첫 번째 객체를 두 번째 객체로 나눈 값을 반환하도록 작성됨
__floordiv__(self, other) 두 객체를 나눈 후 몫을 반환하는 연산을 정의하는 메서드
__mod__(self, other) 두 객체를 나눈 후 나머지 값을 반환하는 연산을 정의하는 메서드
__pow__(self, other) 첫 번째 객체의 두 번째 객체 제곲 값을 반환하는 연산을 정의하는 메서드
__len__(self) 객체의 길이를 반환하는 메서드
__getitem__(self, key) 객체에서 인덱싱을 사용하여 원소에 접근하는 메서드
__setitem__(self, key, value) 객체에서 인덱싱을 사용하여 원소 값을 수정하는 메서드
__delitem__(self, key) 객체에서 인덱싱을 사용하여 원소를 삭제하는 메서드
__contains__(self, item) 객체에 특정 원소가 포함되어 있는지 여부를 반환하는 메서드
__call__(self, ...) 객체가 함수처럼 호출될 때 호출되는 메서드. 객체에 특정 동작이 정의되어 있을 때 사용
__enter__(self), __exit__(self, exc_type, exc_value, traceback) 객체가 with 구문으로 사용될 때 호출되는 메서드. 일반적으로 객체의 상태를 초기화하거나 파일이나 데이터베이스 연결을 열고 닫을 때 사용
__getattr__(self, name), __setattr__(self, name, value) 객체에서 속성에 접근할 때 호출되는 메서드.
__dir__(self) 객체에 정의된 메서드와 속성을 나열하는 메서드
__copy__(self), __deepcopy__(self) 객체를 복사하는 메서드. copy 모듈에서 사용
__hash__(self) 객체의 해시 값을 반환하는 메서드. 'set', 'frozenset', 'dict' 등에서 객체를 키 값으로 사용할 때 호출

'Backend > Python + FastAPI' 카테고리의 다른 글

@property 데코레이터에 대하여  (0) 2023.04.02
~ 연산자에 대하여  (0) 2023.04.01
Python Collections 간단하게 알아보기  (0) 2023.02.28
Python Basics (6)  (0) 2023.02.08
Python Basics (5)  (0) 2022.12.18