Python의 메서드 오버로딩
- Python의 메서드 오버로딩
- Python에서 메서드 오버로딩의 이점
- 동일한 메서드에서 다른 데이터 유형을 사용하는 Python의 메서드 오버로딩
- 다중 디스패치 데코레이터를 사용하는 Python의 메서드 오버로딩

이 튜토리얼에서는 Python의 메소드 오버로딩과 그 장점을 예제와 함께 소개합니다.
Python의 메서드 오버로딩
메소드 오버로딩은 Python에서 중요한 역할을 합니다. 메서드는 매개변수를 전혀 사용하지 않는 경우도 있고 하나 이상의 매개변수를 사용하는 경우도 있습니다.
동일한 메서드를 다른 방식으로 호출하는 것을 메서드 오버로딩이라고 합니다. Python은 다른 언어와 같이 기본적으로 오버로딩 방법을 지원하지 않습니다.
둘 이상의 메서드는 Python에서 같은 이름을 가질 수 없습니다. 메서드 오버로드를 통해 동일한 연산자를 다른 의미로 만들 수 있기 때문입니다. 메서드 오버로딩에 대해 자세히 살펴보겠습니다.
동일한 클래스에 있는 두 개 이상의 메서드가 고유한 매개 변수를 사용하는 경우 이름이 같을 수 있습니다. 메서드 오버로딩의 특징은 동일한 연산자가 여러 해석을 가질 수 있도록 합니다.
오버로딩은 같은 이름으로 많은 기능을 수행할 수 있는 메서드나 연산자를 말합니다.
이제 동일한 매개 변수를 사용하여 두 가지 다른 작업을 수행하는 기본 예제를 통해 메서드 오버로드에 대해 논의해 보겠습니다.
예:
# python
class methodOverload:
def MethodHi(self, user=None):
if user is not None:
print("Hello " + user)
else:
print("Hello")
MethodObj = methodOverload()
MethodObj.MethodHi()
MethodObj.MethodHi("Hasnain")
출력:
:
if datatype == "int":
result = 0
for x in args:
result = result + x
print(result)
if datatype == "str":
result = []
for x in args:
result.append(x)
print(result[0], result[1])
addition("int", 7, 11)
addition("str", "Hello", "python")
출력:
위의 예에서 더할 숫자가 있는 데이터 유형으로 정수를 제공하면 숫자 추가를 수신했습니다. 그러나 문자열을 데이터 유형으로 지정하고 문자열을 전달하면 동일한 방법으로 문자열을 연결하고 결과를 표시했습니다.
다중 디스패치 데코레이터를 사용하는 Python의 메서드 오버로딩
이제 약간 까다로울 수 있는 다른 예를 살펴보겠습니다. 이 예제에서는 메서드 오버로드를 수행하는 효율적인 방법을 사용합니다.
다음 명령을 사용하여 Multiple Dispatch Decorators를 설치해야 합니다.
pip install multipledispatch
설치 후 프로그램으로 가져옵니다. 세 개의 정수와 세 개의 부동 소수점을 전달하고 아래 결과를 표시합니다.
예:
# python
from multipledispatch import dispatch
@dispatch(int, int, int)
def multiply(oneInt, twoInt, threeInt):
ans = oneInt * twoInt * threeInt
print(ans)
@dispatch(float, float, float)
def multiply(oneInt, twoInt, threeInt):
ans = oneInt * twoInt * threeInt
print(ans)
multiply(3, 7, 8)
multiply(3.6, 5.9, 9.9)
출력:
위의 예에서 볼 수 있듯이 여러 디스패치 데코레이터를 사용하여 서로 다른 데이터 유형을 보내고 사용하려는 모든 데이터 유형에 대해 동일한 메서드를 사용하여 결과를 얻을 수 있습니다.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn