숫자를 추가하고 동시에 문자열을 연결하는 데 + 연산자를 사용할 수 있다는 것을 알고 있습니다. 이것은 + 연산자가 int 클래스와 str 클래스 모두에 의해 오버로드되기 때문에 가능합니다. 연산자는 기본적으로 각 클래스에 정의된 메소드입니다. 연산자에 대한 메서드를 정의하는 것을 연산자 오버로딩이라고 합니다. 예를 들어 사용자 정의 개체와 함께 + 연산자를 사용하려면 __add__ 라는 메서드를 정의해야 합니다.
예시
다음 코드를 사용하면 연산자 오버로딩이 작동하는 방식을 쉽게 이해할 수 있습니다.
import math class Circle: def __init__(self, radius): self.__radius = radius def setRadius(self, radius): self.__radius = radius def getRadius(self): return self.__radius def area(self): return math.pi * self.__radius ** 2 def __add__(self, another_circle): return Circle( self.__radius + another_circle.__radius ) c1 = Circle(3) print(c1.getRadius()) c2 = Circle(6) print(c2.getRadius()) c3 = c1 + c2 # This is because we have overloaded + operator by adding a method __add__ print(c3.getRadius())메서드를 추가하여 + 연산자를 오버로드했기 때문입니다.
출력
이것은 출력을 제공합니다.
3 6 9
사용자 정의 유형과 함께 작동하도록 연산자의 동작을 수정하는 것을 연산자 오버로딩이라고 합니다. Python의 모든 연산자에는 __add__와 같은 해당 특수 메서드가 있습니다. 자세한 내용은 docs.python.org/ref/specialnames.html을 참조하세요.