Skip to content

流畅的 Python 阅读记录八:重载运算符

这篇主要讲一下重载运算符的事情, 其实没几个啦, 下面是记录.

1. 重载运算符, 和 C++ 一样, 重新实现 __add____mul__ 这些方法即可.

2. 和 C++ 的不同: 重载 __radd____rmul__, 如果 a+b 中发现 a 没有 __add__ 方法, 那么就会尝试调用 b__radd__ 方法, 流程如图所示.

__radd__

3. 和 C++ 的不同: 重载 __iadd__imul__, 用于就地计算, 就是计算 a+=b 的时候会调用这些方法.

4. 一个不重要的知识: 实现了 __eq__ 而不实现 __ne__ 没有问题, 需要后者的时候会自动对前者的结果取反.

Comments