반응형
파이썬을 공부하면서 클래스에 언더바(_)를 앞뒤로 두개씩 붙혀서 함수를 생성하는 요소가 있는데, 원래는 생성자(__init__) 소멸자(__del__)만 신경쓰다가 또 다른 함수가 있는지 알아보았다.
사실 이 글을 작성할때까지만해도 이러한 함수가 어떤 이름을 갖고있는지 몰랐는데 이번에 알게되었다.
이름은 던더 메소드이고 어떤 곳은 매직 메소드라고도 한다. 던더라는건 double underbar에서 줄인 단어이다.
아래는 간단한 클래스 예시
class Person:
def __init__(self, name):
self.name = name
print("생성자")
def __del__(self):
print("소멸자")
def print_name(self):
print(self.name)
print("일반 함수")
이러한 던더 메소드는 다양하게 존재함
__new__ __str__ __repr__ __add__ __sub__ __mul__ __div__ __eq__ 등등...
예시로 __add__ 라는 던더 메소드를 선언할경우 두개의 클래스를 더할때의 상황을 정의할수있다.
class StringAdder:
def __init__(self, string):
self.string = string
def __add__(self, other):
return self.string + other.string
def __str__(self):
return self.string
s1 = StringAdder('Hello')
s2 = StringAdder('World')
print(s1 + s2) # 출력: HelloWorld
print(s1, s2) # 출력: Hello World
참고 자료
- https://blog.naver.com/youndok/222566232550
반응형
'TIL > 개인공부' 카테고리의 다른 글
[ORM] Python SQLAlchemy 내용 정리하기 (WIP) (3) | 2024.11.04 |
---|---|
[Kubernetes] k8s관련 끄적끄적 (1) | 2024.10.30 |
[TIL] CRD, CR, Operator (0) | 2024.07.11 |
[Github Action] 특정 job 비활성화 시키기 (0) | 2023.07.14 |
[Python] nohup으로 python코드 실행시 python 로그 찍히게하기 (0) | 2023.03.27 |