매직메소드란?
"__Method__" 형태의 인스턴스(객체)가 생성될 때 인터프리터에 의해 자동으로 호출되는 메소드
매직메소드 예시
__init__, __call__, __getattribute__ 등은 모두 매직메소드의 형태로 호출된다.
# 1. 기본 MagicMethod
class A:
def __init__(self):
print("A 클래스 __init__ 생성자 매직메소드로 실행됨")
# 2. Class를 함수 호출하기, __call__ 매직메소드
class B:
def __call__(self, *args, **kwargs):
print("B 클래스 __call__ 매직메소드로 호출됨")
b = B()
b()
# 3. '.' 도 __getattribute__ 의 매직메소드
class C:
def __getattribute__(self, item):
print("__getattribute__ 함수를 호출하여 ", item, "의 객체에 접근")
c = C()
c.data
매직메소드 목록 확인 방법
dir(객체) 명령어를 통해 목록을 확인 할 수 있다.
'Python > Utils' 카테고리의 다른 글
[Python] Datetime 이해 - aware, naive, datetime, timezone 등 (0) | 2023.05.29 |
---|---|
[Python Utils] 코드 컨벤션 템플릿 셋팅 (pre-commit, black, pycharm) (0) | 2023.05.29 |
[Python Utils] Python 제너레이터 사용 (0) | 2022.08.25 |
[Python Utils] Python Decorator 활용 (0) | 2022.08.25 |
[Python Utils] Python Type 어노테이션/힌트 (Typing, mypy) (0) | 2022.08.24 |