python教程系列(二.2.3、运算类魔法函数)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cui130/article/details/86257977

在这里插入图片描述

运算相关魔术方法

比较运算相关魔术方法

1._ _lt_ _()

格式:
    def __lt__(self,other):
        return 数据

特征:

    触发时机:进行小于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义小于号的行为:x < y 调用 x.lt(y)

2._ _le_ _()

格式:
    def __le__(self):
        return str

特征:

    触发时机:进行小于等于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义小于等于号的行为:x <= y 调用 x.le(y)

3._ _gt_ _()

格式:
    def __gt__(self):
        return str

特征:

    触发时机:进行大于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义大于号的行为:x > y 调用 x.gt(y)

4._ _ge_ _()

格式:
    def __ge__(self):
        return str

特征:

    触发时机:进行大于等于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义大于等于号的行为:x >= y 调用 x.ge(y)

5._ _eq_ _()

格式:
    def __eq__(self):
        return str

特征:

    触发时机:进行等于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义大于等于号的行为:x == y 调用 x.eq(y)

6._ _ne_ _()

格式:
    def __ne__(self):
        return str

特征:

    触发时机:进行不等于判断时自动触发
    参数:2个参数第一个是self,第二个判断的第二个对象
    返回值:返回值可以任意类型,推荐布尔值
    作用:定义不等号的行为:x != y 调用 x.ne(y)

算术运算相关魔术方法

__add__(self, other)     定义加法的行为:+
__sub__(self, other)    定义减法的行为:-
__mul__(self, other)     定义乘法的行为:
__truediv__(self, other)     定义真除法的行为:/
__floordiv__(self, other)    定义整数除法的行为://
__mod__(self, other)     定义取模算法的行为:%
__divmod__(self, other)  定义当被 divmod() 调用时的行为
__pow__(self, other[, modulo])   定义当被 power() 调用或 ** 运算时的行为
__lshift__(self, other)  定义按位左移位的行为:<<
__rshift__(self, other) 定义按位右移位的行为:>>
__and__(self, other)     定义按位与操作的行为:&
__xor__(self, other)     定义按位异或操作的行为:^
__or__(self, other) 定义按位或操作的行为:|

反运算相关魔术方法

radd(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rsub(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rmul(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rtruediv(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rfloordiv(self, other)   (与上方相同,当左操作数不支持相应的操作时被调用)
rmod(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rdivmod(self, other)     (与上方相同,当左操作数不支持相应的操作时被调用)
rpow(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rlshift(self, other)     (与上方相同,当左操作数不支持相应的操作时被调用)
rrshift(self, other)     (与上方相同,当左操作数不支持相应的操作时被调用)
rand(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
rxor(self, other)    (与上方相同,当左操作数不支持相应的操作时被调用)
ror(self, other)     (与上方相同,当左操作数不支持相应的操作时被调用)

赋值运算相关魔术方法

iadd(self, other)    定义赋值加法的行为:+=
isub(self, other)    定义赋值减法的行为:-=
imul(self, other)    定义赋值乘法的行为:=
itruediv(self, other)    定义赋值真除法的行为:/=
ifloordiv(self, other)   定义赋值整数除法的行为://=
imod(self, other)    定义赋值取模算法的行为:%=
ipow(self, other[, modulo])  定义赋值幂运算的行为:**=
ilshift(self, other)     定义赋值按位左移位的行为:<<=
irshift(self, other)     定义赋值按位右移位的行为:>>=
iand(self, other)    定义赋值按位与操作的行为:&=
ixor(self, other)    定义赋值按位异或操作的行为:^=
ior(self, other)     定义赋值按位或操作的行为:|=

一元运算相关魔术方法

pos(self)    定义正号的行为:+x
neg(self)    定义负号的行为:-x
abs(self)    定义当被 abs() 调用时的行为
invert(self)     定义按位求反的行为:~x

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cui130/article/details/86257977