AI/Python

[Python] 클래스의 던더 변수 및 메소드

i-moo 2025. 10. 4. 23:12
반응형
class T:
	
    def __init(self, num):
	    self.num = num
        
    def __call(self, value):
    	return self.num + value
        
    def __str__(self):
    	return f"T > num : {self.num}"
        
    def __add__(self, value) -> int|float|None:
    	if isinstance(value, (int|float):
        	return self.num + value
        else:
        	return None

__dict__

객체가 가지고 있는 변수를 Dictionary로 반환하는 함수
동일 함수 이름이나 동일 변수 이름이 생성되는 경우, 마지막에 생성된 함수|변수를 반환함.

print(t.__dict__)
# {'num': 10}

__code__()

객체를 함수처럼 호출하는 방법
클래스에 메소드가 하나밖에 없을 때 많이 사용한다.

t(100) # Test.__call__()
# t의 num 값이 + 100이 됨.

__str__()

str(t)를 호출할 때 나오는 결과 값을 커스텀하기 위한 방법

커스텀하기 전 기존 str(t) 결과 값 : <__main__.T object at 0x10a2fa730>

커스텀 후 str(t) 결과 값 : T > num : 110

📌 Operator Overriding

__add__()

t + 20 # __add__ 메소드가 구현되어있으면 가능. num은 130이 됨.
반응형