前言 Python 中的特殊方法主要是为了被解释器调用的,因此应该尽量使用 len(my_object) 而不是 my_object.__len__() 这种写法。在执行 len(my_object) 时,Python 解释器会自行调用 my_object 中实现的 __len__ 方法。 除非有大量的元编程存在,直接调用特殊方法的频率应远小于实现它们的次数。 模拟数值类型 可以通过在自定义对象中实现 __add__ 和 __mul__ 等特殊方法 ,令其支持 +、* 等运算符。 如下面的模拟向量的 Vector 类: # vector.py from math import hypot c