计算相关的魔术方法

282 阅读2分钟

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__:定义了自增按位或的行为