python 运算符重载

名词解释: rhs(right hand side)

1.算术运算符重载

左侧为自定义类型时,右侧为内建类型进行算术运算

方法名表达式描述
add(self,rhs)self + rhs加法
sub(self,rhs)self - rhs减法
mul(self,rhs)self * rhs乘法
truediv(self,rhs)self / rhs除法
floordiv(self,rhs)self //rhs地板除
mod(self,rhs)self % rhs取模(求余)
pow(self,rhs)self **rhs幂运算

2.反向运算符

左侧为内建类型时,右侧为自定义类型进行算术运算

方法名表达式描述
radd(self,lhs)lhs + self加法
rsub(self,lhs)lhs - self减法
rmul(self,lhs)lhs * self乘法
rtruediv(self,lhs)lhs / self除法
rfloordiv(self,lhs)lhs // self地板除
rmod(self,lhs)lhs % self取模(求余)
rpow(self,lhs)lhs ** self幂运算

3.复合赋值运算符

    以复合赋值算术运算符 x += y为例,此运算符会优先调用x.__iadd__(y)方法,如果没有__iadd__方法时,则会将复合赋值算术运          算拆解为:x = x + y
    然后调用x = x.__add__(y)方法,如果再不存在__add__方法则会触发TypeError类型的错误异常
方法名表达式描述
iadd(self,rhs)self += rh加法
isub(self,rhs)self -= rh减法
imul(self,rhs)self *= rh乘法
itruediv(self,rhs)self /= rh除法
ifloordiv(self,rhs)self //=rh地板除
imod(self,rhs)self %= rh取模(求余)
ipow(self,rhs)self **=rh幂运算

4.比较运算符重载

方法名表达式描述
lt(self,rhs)self < rhs小于
le(self,rhs)self <= rhs小于等于
gt(self,rhs)self > rhs大于
ge(self,rhs)self >= rhs大于等于
eq(self,rhs)self == rhs等于
ne(self,rhs)self != rhs不等于

5.位运算符

方法名表达式描述
and(self,rhs)self & rhs位与
or(self,rhs)selfrhs
xor(self,rhs)self ^ rhs位异或
lshift(self,rhs)self <<rhs左移
rshift(self,rhs)self >>rhs右移

6.反向位运算符

方法名表达式描述
and(self,lhs)lhs & rhs位与
or(self,lhs)lhsrhs
xor(self,lhs)lhs ^ rhs位异或
lshift(self,lhs)lhs <<rhs左移
rshift(self,lhs)lhs >>rhs右移

7.一元运算符

方法名表达式描述
neg(self)- self负号
pos(self)+ self正号
invert(self)~ self取反

8.in/not in 运算符

方法名表达式描述
containsin / not in

9.索引和切片运算符

方法名表达式描述
getitem(self,i)x = self(i)索引/切片取值
setitem(self,i,v)self[i] = v索引/切片赋值
delitem(self,i)del self[i]del语句删除索引/切片

参考:
https://blog.csdn.net/zhangshuaijun123/article/details/82149056

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值