参考资料:
用于比较的魔术方法
__eq__(self, other)
定义了等号的行为,==
__ne__(self, other)
定义了不等号的行为,!=
__lt__(self, other)
定义了小于号的行为,<
__gt__(self, other)
定义了大于号的行为,>
__le__(self, other)
定义了小于等于号的行为,<=
__ge__(self, other)
定义了大于等于号的行为,>=
例子:
class People:
def __init__(self, age):
self.age = age
# 定义了等号的行为
def __eq__(self, other):
return self.age == other.age
# 定义了不等号的行为
def __ne__(self, other):
return self.age != other.age
# 定义了小于号的行为
def __lt__(self, other):
return self.age < other.age
# 定义了大于号的行为
def __gt__(self, other):
return self.age > other.age
# 定义了小于等于号的行为
def __le__(self, other):
return self.age <= other.age
# 定义了大于等于号的行为
def __gt__(self, other):
return self.age >= other.age
tom = People(18)
sam = People(18)
lucy = People(19)
print(tom >= sam)
>>> True
用于数值处理的魔术方法
1. 一元操作符和函数
__pos__(self)
实现正号的特性(比如 +some_object
)
__neg__(self)
实现负号的特性(比如 -some_object
)
__abs__(self)
实现内置 abs()
函数(绝对值)的特性
__invert__(self)
实现 ~
操作符(取反运算)的特性
__round__(self, n)
实现内置 round()
函数的行为,n 是要四舍五入的小数位数
__floor__(self)
实现 math.floor()
函数的行为,即向下舍入到最接近的整数
__ceil__(self)
实现 math.ceil()
函数的行为,即四舍五入到最接近的整数
__trunc__(self)
实现 math.trunc()
函数的行文,即只截取整数部分
2. 普通算术符号
__add__(self, other)
实现加法
__sub__(self, other)
实现减法
__mul__(self, other)
实现乘法
__floordiv__(self, other)
实现 //
运算符实现整数除法
__div__(self, other)
实现 /
运算符实现除法
__truediv__(self, other)
实现 true division。请注意,这仅 from __future__ import division
在生效时有效
__mod__(self, other)
实现 %
运算符实现取余运算
__divmod__(self, other)
实现 divmod()
内置函数,返回结果包含除数和余数
__pow__
实现 **
运算符实现指数的行为
__lshift__(self, other)
实现 <<
运算符,按位左移
__rshift__(self, other)
实现 >>
运算符,按位右移
__and__(self, other)
实现 &
运算符,即 and
操作符
__or__(self, other)
实现 |
运算符,即 or
操作符
__xor__(self, other)
实现 ^
运算符,即 is not
操作符
网友评论