-
파이썬 오버로딩과 오버라이딩Python 2022. 11. 10. 14:16
오버 라이딩은 이해하고 있었으나 오버 로딩이 정확히 무엇인지 이해하지 못하고 있었다.
결과적으로 이유를 보았을 때 파이썬에서는 오버 로딩을 정식으로 지원하지 않았기 때문인듯하다.
오버 로딩과 오버 라이딩을 정리해보자.
오버 로딩, 오버 라이딩
정의로는 동일한 이름의 함수를 매개변수에 따라 다른 기능으로 동작하도록 하는 것이다.
오버 라이딩은 상속 시에 클래스를 수정하는 것이고 오버 로딩은 하나의 메서드에 다형성을 부여하는 것이다.
좀 더 이해하기 편하게 생각해보면 오버 로딩은 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것이다.
파이썬에서는 오버 로딩을 지원하지 않는다.
그렇다면 파이썬에서는 어떤 식으로 해결할까?
class calculator(): def add(self, a, b): return a + b위의 예제처럼 계산기 클래스에 더하기 함수가 있을 때 예제대로라면 숫자 두 개씩만 합할 수 있다.
그러나 두 개의 숫자뿐만 아니라 임의의 개수의 숫자를 더 한다면 어떻게 할까?
class calculator(): def add(self, *args): return sum(args)위의 예시대로 구현할 수 있다.
만약 더하기에 원하는 기능들이 있다면 분기 처리를 하거나 MultipleDispatch 패키지를 이용해 오버 로딩을 할 수 있다.
'Python' 카테고리의 다른 글
Python AES256 암호화, 복호화 (0) 2022.12.22 [lambda x: i * x for i in range(4)] (1) 2022.11.07 Python 패키징의 역사 (0) 2022.10.12 Python Celery (0) 2022.10.06 Python getter setter property (0) 2022.09.28