개발자 블로그
[윤성우의 열혈 파이썬 중급편] - 15. 연산자 오버로딩 본문
연산자 오버로딩이란?
클래스에서 상속시 사용되는 오버라이딩이란 개념이랑 다른 개념이다! 오버라이딩은 상속할 때 상속받은 메소드를 덮어 씌어서 새로운 메소드로 동작하도록 하는 것이고, 오버로딩은 하나의 메소드에 다양한 형태를 부여한 것이라고 말할 수 있다. 그러다 보니 오버로딩이란 개념에 대해 부정적으로 생각하는 개발자들이 많다고 한다! 왜냐면 다형성이 주는 부정적인 측면이 많기 때문! 오류가 났을 때 원인을 찾기 어렵다던가, 코드가 복잡해지는 것을 초래할 수 있다는 점에서 말이다.
미리 약속해 놓은 메소드가 호출 되도록하는 것이 연산자 오버로딩!
예를 들어 '+' -> __add__(), '-' -> __sub__() 이 호출되는 것인데, __add__()를 기존과 다르게 재정의하면, +연산자를 호출하면 재정의 된 __add__()가 호출이 될 것이다. 이러한 것이 연산자 오버로딩이라고 한다.
*다양한 연산자들에 대해 오버로딩이 가능한데, 그 규칙만 파이썬 문서를 통해 확인한다면(어떠한 연산자가 어떤 메소드 호출로 이어지는지에 대한 규칙) 필요에 따라 원하는 연산자를 적절히 오버로딩 할 수 있을 것이다.
'파이썬 > 윤성우의 열혈 파이썬 중급편' 카테고리의 다른 글
[윤성우의 열혈 파이썬 중급편] - 17. __slots__의 효과 (0) | 2022.05.10 |
---|---|
[윤성우의 열혈 파이썬 중급편] - 16. 정보 은닉과 __dict__ (0) | 2022.05.09 |
[윤성우의 열혈 파이썬 중급편] - 14. 스페셜 메소드 (0) | 2022.05.07 |
[윤성우의 열혈 파이썬 중급편] - 13. isinstance 함수와 object 클래스 (0) | 2022.05.03 |
[윤성우의 열혈 파이썬 중급편] - 12. 상속 (0) | 2022.05.03 |