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 # 这是因为我们用__add__方法重载加法操作符
print(c3.getRadius())
输出
运行结果如下:
3
6
9
修改操作符的行为使之能处理用户定义的类型称为操作符重载。对于Python中的每个操作符,都有一个相应的特殊方法,如__add__
。更多细节请参考docs.python.org/ref/specialnames.html。
更多Python相关文章,请阅读:Python 教程