Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

오버로딩 연산자는 Python에서 어떻게 작동합니까?


숫자를 추가하고 동시에 문자열을 연결하는 데 + 연산자를 사용할 수 있다는 것을 알고 있습니다. 이것은 + 연산자가 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을 참조하세요.