这章讲的是运算符重载。运算符重载不是什么新玩意儿,老早就有。但是在C++时代,名声不佳,因为滥用的情况比较多,而且语法也不怎么方便。所谓运算符重载,就是你定义操作符和它的运算规则,适度使用,可以有效的提升代码可读性。
比如,字符串相加:str1 + str2。大家习以为常,可是想一想,数字可以直接相加得结果,字符串又怎么个加法?还不是定义了操作符支持,两个操作参数接在一起获取结果而已。
Python支持操作符重载,但是考虑到各种因素,它同时做了限制和约束,平衡了一下灵活性、可用性、安全度。比如不能重载内置类型的运算符,禁止重载一些运算符,不然就容易乱套了。
本章作者演示了,如何重载一元、加法、乘法等操作符。
社区中约有 10% 的人能正确地使用和真正关心运算符重载,对这些人来说,运算符重载是极其重要的。这部分人几乎专门处理数字,在这一领域中,为了符合人类的直觉,表示法特别重要,因为他们进入这一领域时,直觉中已经知道 + 的意思,他们知道“a + b”中的 a 和 b 可以是复数、矩阵或其他合理的东西。