Python 연산자 오버로딩을 위한 스페셜 메서드 정리
연산자 오버로딩이란? 연산자 오버로딩(Operator overloading)이란, 사용자 정의 클래스에서 기존에 정의된 연산자(+, -, *, / 등)의 동작을 재정의하는 것을 말한다. 이를 통해 사용자 정의 데이터 타입에 대해 연산자를 사용하여 직관적으로 작업할 수 있다. class Number: def __init__(self, value): self.value = value def __str__(self): return str(self.value) def __add__(self, other): if isinstance(other, Number): return Number(self.value + other.value) if isinstance(other, (int, float, bool)): retu..
Python 패킹(packing) 언패킹(unpacking) 총정리
리스트 언패킹 li = [1, 2, 3, 4] a, b, c, d = li 스타를 활용한 리스트 언패킹 li = [1, 2, 3, 4] a, *b, c= li # a = 1, b = [2, 3], c = 4 튜플 언패킹 tu = (1, 2, 3, 4) a, b, c, d = tu 함수 인자 언패킹(딕셔너리 언패킹) def my_function(a, b, c, d): print(a, b, c, d) di = dict(a=1, b=2, c=3, d=4) # * : key unpacking # ** : value unpacking my_function(*di) # a b c d my_function(**di) # 1 2 3 4 * 주의 : **를 사용하여 value unpacking 시 함수의 매개변수 이름과..