运算符相关的魔术方法
运算符相关的魔术方法实在太多了,j就大概列举下面两类:
1、比较运算符
__cmp__(self, other)
如果该方法返回负数,说明 self < other
; 返回正数,说明 self > other
; 返回 0 说明 self == other
。强烈不推荐来定义 __cmp__
, 取而代之, 最好分别定义 __lt__
, __eq__
等方法从而实现比较功能。 __cmp__
在 Python3 中被废弃了。
__eq__(self, other)
定义了比较操作符 == 的行为
__ne__(self, other)
定义了比较操作符 != 的行为
__lt__(self, other)
定义了比较操作符 < 的行为
__gt__(self, other)
定义了比较操作符 > 的行为
__le__(self, other)
定义了比较操作符 <= 的行为
__ge__(self, other)
定义了比较操作符 >= 的行为
来看个简单的例子就能理解了:
输出的结果为:
2、算术运算符
__add__(self, other)
实现了加号运算
__sub__(self, other)
实现了减号运算
__mul__(self, other)
实现了乘法运算
__floordiv__(self, other)
实现了 // 运算符
___div__(self, other)
实现了/运算符. 该方法在 Python3 中废弃. 原因是 Python3 中,division 默认就是 true division
__truediv__(self, other)
实现了 true division. 只有你声明了 from __future__ import division
该方法才会生效
__mod__(self, other)
实现了 % 运算符, 取余运算
__divmod__(self, other)
实现了 divmod() 內建函数
__pow__(self, other)
实现了 **
操作. N 次方操作
__lshift__(self, other)
实现了位操作 <<
__rshift__(self, other)
实现了位操作 >>
__and__(self, other)
实现了位操作 &
__or__(self, other)
实现了位操作 `
__xor__(self, other)
实现了位操作 ^
可以关注下公众号:
这个公号可能很少更新,但是一更新,就是把整理的一系列文章更新上去。
Last updated