1
Python编程从入门到实践
1.12.3.2 8.3.2 运算符重载
8.3.2 运算符重载

Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似,但又有些不同。Python运算符重载是通过重写这些Python内置方法来实现的。这些方法都是以双下划线开头和结尾的,类似于__X__形式,Python通过这种特殊的命名方式来实现重载。当Python的内置操作运用于类对象时,Python会去搜索并调用对象中指定的方法来完成操作。

类可以重载加减运算、打印、函数调用、索引等内置运算,运算符重载使对象的行为与内置对象的一样。Python在调用操作符时,会自动调用这样的方法。

常见运算符重载方法见表8-2。

表8-2 常见运算符重载方法

续表

例如,如果类实现了__add__方法,当类的对象出现在+运算符中时,会调用这个方法。为更好地理解运算符重载,以加减运算__add__和__sub__为例进行操作说明。重载这两个方法就可以在普通的对象上添加+、-运算符进行操作。例8.11所示的代码演示了如何使用+、-运算符。

【例8.11】加减运算重载实例。

以上实例的输出结果如图8-14所示。

图8-14 输出结果

在上述实例中,如果将代码中的__sub__方法去掉,再调用减号运算符,程序就会出错。