개발자 블로그

[윤성우의 열혈 파이썬 중급편] - 15. 연산자 오버로딩 본문

파이썬/윤성우의 열혈 파이썬 중급편

[윤성우의 열혈 파이썬 중급편] - 15. 연산자 오버로딩

hayongwoon 2022. 5. 7. 14:43

연산자 오버로딩이란?

 클래스에서 상속시 사용되는 오버라이딩이란 개념이랑 다른 개념이다! 오버라이딩은 상속할 때 상속받은 메소드를 덮어 씌어서 새로운 메소드로 동작하도록 하는 것이고, 오버로딩은 하나의 메소드에 다양한 형태를 부여한 것이라고 말할 수 있다. 그러다 보니 오버로딩이란 개념에 대해 부정적으로 생각하는 개발자들이 많다고 한다! 왜냐면 다형성이 주는 부정적인 측면이 많기 때문! 오류가 났을 때 원인을 찾기 어렵다던가, 코드가 복잡해지는 것을 초래할 수 있다는 점에서 말이다.

 

 미리 약속해 놓은 메소드가 호출 되도록하는 것이 연산자 오버로딩!

예를 들어 '+' -> __add__(), '-' -> __sub__() 이 호출되는 것인데, __add__()를 기존과 다르게 재정의하면, +연산자를 호출하면 재정의 된 __add__()가 호출이 될 것이다. 이러한 것이 연산자 오버로딩이라고 한다.

 

*다양한 연산자들에 대해 오버로딩이 가능한데, 그 규칙만 파이썬 문서를 통해 확인한다면(어떠한 연산자가 어떤 메소드 호출로 이어지는지에 대한 규칙) 필요에 따라 원하는 연산자를 적절히 오버로딩 할 수 있을 것이다.