33. Python에서의 캡슐화 – 연산자 중복 정의

안녕하세요. 언제나 휴일, 언휴예요.

 

이번에는 Python에서 연산자 중복 정의를 다룰거예요.

 

Python에서는 클래스를 정의할 때 일부 연산에 관한 메서드를 정의할 수 있어요. 이를 위해서는 이미 약속한 메서드 이름을 사용해야 합니다.

 

더하기는 __add__, 빼기는 __sub__, 곱하기는 __mul__, 나누기는 __div__, 플러스 기호는 __pos__, 마이너스 부호는 __neq__입니다. 이 외에도 __mod__(나머지), __and__(논리곱), __or__(논리합), __xor__(논리 상호 배제), __invert__(논리 부정), __abs__(절대값), __pow__(제곱), __floordiv__(//)입니다.

다음은 복소수 클래스를 정의한 예제 코드입니다. 여기에서는 부호 연산과 사칙 연산에 관하여 연산자 중복 정의를 구현하였습니다. 연산자 중복 정의에 관한 사항은 어떠한 이름으로 정의해야 하는지 말고는 특별한 사항이 없어요.

[그림 1] 연산자 중복 정의 예제 실행 화면
[그림 1] 연산자 중복 정의 예제 실행 화면