在Python语言中提供了类似于C++的运算符重载功能。Python的运算符重载方法有些特殊,不像在C++中用operator关键字来实现,而是使用一些提前内置的方法名来表示,比如与加法对应的方法是__add__(),与减法对应的方法是__sub__()。
运算符重载意味着在类方法中拦截内置的操作,当类的实例使用内置操作时,Python自动调用自己定义的方法,并且该方法的返回值就是相应操作的结果。
注意:
- 运算符重载让类拦截常规的Python运算;
- 对于内置对象(例如整数和列表)的操作。几乎都有相应的特殊名称的重载方法;
- 类可重载所有的Python表达式运算符;
- 类也可重载打印、函数调用、属性点号运算等内置运算;
- 重载使类实例的行为像内置类型;
- 重载是通过特殊名称的类方法来实现的。