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

在这里插入图片描述

运算相关魔术方法

比较运算相关魔术方法

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

在这里插入图片描述

Python中,中以双下划线__开头和结尾的函数称为魔法方法或特殊方法。这些方法可以在中定义,用于重载Python的一些内置操作或操作符,例如+、-、*、/、[]、==、<等。 下面是一些常用的特殊方法及其使用方法: 1. __init__(self, ...):构造函数,在创建对象时调用,用于初始化对象的属性。 2. __str__(self):返回一个字符串,用于描述当前对象。 3. __repr__(self):返回一个字符串,用于描述当前对象(通常与__str__方法相同)。 4. __eq__(self, other):判断两个对象是否相等,通常与==操作符一起使用。 5. __lt__(self, other):判断当前对象是否小于另一个对象,通常与<操作符一起使用。 6. __gt__(self, other):判断当前对象是否大于另一个对象,通常与>操作符一起使用。 7. __le__(self, other):判断当前对象是否小于或等于另一个对象,通常与<=操作符一起使用。 8. __ge__(self, other):判断当前对象是否大于或等于另一个对象,通常与>=操作符一起使用。 9. __add__(self, other):定义对象相加的行为,通常与+操作符一起使用。 10. __sub__(self, other):定义对象相减的行为,通常与-操作符一起使用。 11. __mul__(self, other):定义对象相乘的行为,通常与*操作符一起使用。 12. __truediv__(self, other):定义对象相除的行为,通常与/操作符一起使用。 13. __getitem__(self, index):定义对象的索引操作,通常与[]操作符一起使用。 14. __setitem__(self, index, value):定义对象的赋值操作,通常与[]操作符一起使用。 通过重载这些特殊方法,我们可以自定义的行为,使得它们更符合我们的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值