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 # 这是因为我们用__add__方法重载加法操作符
print(c3.getRadius())

输出

运行结果如下:

3
6
9

修改操作符的行为使之能处理用户定义的类型称为操作符重载。对于Python中的每个操作符,都有一个相应的特殊方法,如__add__。更多细节请参考docs.python.org/ref/specialnames.html

更多Python相关文章,请阅读:Python 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程