인공지능 개발자 수다(유튜브 바로가기) 자세히보기

파이썬/파이썬 코딩

[파이썬] 매직메소드(Magic Methods)

Suya_03 2024. 3. 10. 01:04

목차

    반응형

     

    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 형식으로 사용됩니다.

     

    반응형