1.比较运算相关的魔术方法
__cmp__:用于对象比较,可以是任何两个对象的比较
__eq__:定义==符号的行为
__ne__:定义!=符号的行为
__lt__:定义<符号的行为
__gt__:定义>符号的行为
__le__:定义<=符号的行为
__ge__:定义>=符号的行为
2.数值计算相关的魔术方法
2.1 单目运算符相关的魔术方法
__pos__:定义了取正数时的行为
__neg__:定义了取负数时的行为
__abs__:定义了取绝对值时的行为
__invert__:定义了取反操作时的行为
__round__:定义了round()函数的行为
__floor__:定义了向下取整时的行为
__ceil__:定义了向上取整时的行为
__trunc__:定义了math.trunc()方法的行为,该方法用于返回数字的整数部分
2.2 双目运算符相关的魔术方法
__add__或__radd__:定义了加法行为
__sub__或__rsub__:定义了减法行为
__mul__或__rmul__:定义了乘法行为,这里的__mul__定义了正常的乘法行为,而__rnul__则定义了右乘的行为。这一点在矩阵乘法中就是一个很好的应用
__floordiv__或__rfloordiv__:定义了//操作符(地板除)的行为
__div__或__rdiv__:定义了/操作符(普通除法)行为
__mod__或__rmod__:定义了取余操作的行为
__pow__或__rpow__:定义了指数运算的行为
__lshift__或__rlshift__:定义了左移操作的行为
__rshift__或__rlshift__:定义了右移操作的行为
__and__或__rand__:定义了按位与的行为
__or__或__ror__:定义了按位或的行为 __xor__或__rxor__:定义了按位异或的行为
2.3 自增运算相关的魔术方法
__iadd__:定义了自增加法行为
__isub__:定义了自增减法行为
__imul__:定义了自增乘法行为
__ifloordiv__:定义了自增//操作符(地板除)的行为
__idiv__:定义了自增/操作符(普通除法)行为
__imod__:定义了自增取余操作的行为
__ipow__:定义了自增指数运算的行为
__ilshift__:定义了自增左移操作的行为
__irshift__:定义了自增右移操作的行为
__iand__:定义了自增按位与的行为
__ior__:定义了自增按位或的行为