목차
반응형
1. 개요
- 파이썬의 매직 메소드(Magic Methods)는 특별한 의미를 가지는 메소드로, 언더스코어(__)로 시작하고 끝나는 특별한 이름을 가지고 있습니다.
- 매직 메소드는 사용자 정의 객체들이 내장 타입처럼 자연스럽게 행동하도록 만들어 줍니다. 즉, 개발자가 만든 객체가 자동으로 가지게 되는 함수들을 뜻합니다.
2. 상세 내용
2.1. 객체 초기화 및 소멸
- __init__(self, ...): 객체 생성 시 초기화를 위해 호출됩니다. 필요한 초기 설정을 수행합니다.
- __del__(self): 객체가 소멸될 때 호출됩니다. 필요한 정리 작업을 수행합니다.
2.2. 문자열 표현
- __str__(self): 객체의 비공식적이고, 사용자가 이해하기 쉬운 문자열 표현을 위해 사용됩니다. print() 함수 호출 시 발동됩니다.
- __repr__(self): 객체의 공식적인 문자열 표현을 위해 사용됩니다. 개발자가 보기에 적합하며, 대부분의 경우 객체를 재생성할 수 있는 유효한 파이썬 표현식을 제공합니다.
2.3. 컬렉션과 시퀀스
- __len__(self): 컨테이너 내 항목의 수를 반환합니다. len() 함수에 의해 호출됩니다.
- __getitem__(self, key): 주어진 키에 해당하는 항목을 컨테이너에서 가져옵니다. obj[key] 형식으로 접근 시 사용됩니다.
- __setitem__(self, key, value): 컨테이너의 특정 키에 값을 설정합니다. obj[key] = value 형식으로 할당 시 사용됩니다.
- __delitem__(self, key): 컨테이너에서 주어진 키에 해당하는 항목을 삭제합니다. del obj[key] 형식으로 사용됩니다.
- __iter__(self): 객체에 대한 반복자를 반환합니다. 반복 가능한 객체를 만들기 위해 사용됩니다.
- __contains__(self, item): 컨테이너가 특정 항목을 포함하는지 확인합니다. item in obj 형식으로 사용됩니다.
2.4. 비교 연산
- __eq__(self, other): 동등성을 비교합니다. self == other 형식으로 사용됩니다.
- __ne__(self, other): 불일치를 비교합니다. self != other 형식으로 사용됩니다.
- __lt__(self, other): 작은지 비교합니다. self < other 형식으로 사용됩니다.
- __le__(self, other): 작거나 같은지 비교합니다. self <= other 형식으로 사용됩니다.
- __gt__(self, other): 큰지 비교합니다. self > other 형식으로 사용됩니다.
- __ge__(self, other): 크거나 같은지 비교합니다. self >= other 형식으로 사용됩니다.
2.5. 산술 연산 및 변경된 할당
- __add__(self, other): 덧셈 연산을 구현합니다. self + other 형식으로 사용됩니다.
- __sub__(self, other): 뺄셈 연산을 구현합니다. self - other 형식으로 사용됩니다.
- __mul__(self, other): 곱셈 연산을 구현합니다. self * other 형식으로 사용됩니다.
- __truediv__(self, other): 나눗셈 연산을 구현합니다. self / other 형식으로 사용됩니다.
- __floordiv__(self, other): 정수 나눗셈을 구현합니다. self // other 형식으로 사용됩니다.
- __mod__(self, other): 모듈로 연산을 구현합니다. self % other 형식으로 사용됩니다.
- __pow__(self, other[, modulo]): 거듭제곱을 구현합니다. self ** other 형식으로 사용됩니다.
- __iadd__(self, other): 할당과 함께 덧셈을 구현합니다. self += other 형식으로 사용됩니다.
- __isub__(self, other): 할당과 함께 뺄셈을 구현합니다. self -= other 형식으로 사용됩니다.
- __imul__(self, other): 할당과 함께 곱셈을 구현합니다. self *= other 형식으로 사용됩니다.
반응형
'파이썬 > 파이썬 코딩' 카테고리의 다른 글
[파이썬] 병렬처리(multi-threading, multi-processing) (0) | 2024.04.23 |
---|---|
[파이썬] 제너레이터(Generators)와 이터레이터(Iterators) (3) | 2024.03.07 |