python mul_Python操作符一览

本文详细介绍了Python的各种操作符,包括加法、除法、位运算、比较等,并提供了自定义对象操作符的方法,以及右运算符和自运算符的实现示例。
摘要由CSDN通过智能技术生成

操作

语法

函数

加法

a + b

__add__(self, value)

级联

seq1 + seq2

__concat__(self, value)

包含检测

obj in seq

__contains__(self, value)

除法

a / b

__truediv__(self, value)

整数除

a // b

__floordiv__(self, value)

按位取和

a & b

__and__(self, value)

按位取异或

a ^ b

__xor__(self, value)

按位取非

~ a

__invert__(self)

按位取或

a | b

__or__(self, value)

幂级数

a ** b

__pow__(self, value)

校验

a is b

__is__(self, value)

校验(非)

a is not b

__is_not__(self, value)

按目录设置

obj[k] = v

__setitem__(self, k, v)

按目录删除

del obj[k]

__delitem__(obj, k)

按目录获取

obj[k]

__getitem__(obj, k)

左移位

a << b

__lshift__(self, value)

取余

a % b

__mod__(self, value)

乘法

a * b

__mul__(self, value)

矩阵乘法

a @ b

__matmul__(self, value)

取反(算数)

- a

__neg__(self)

取反(逻辑)

not a

__not__(self)

取正

+ a

__pos__(self)

右移位

a >> b

__rshift__(self, value)

片段设置

seq[i:j] = values

__setitem__(self, slice__(i, j), values)

片段删除

del seq[i:j]

__delitem__(self, slice__(i, j))

片段获取

seq[i:j]

__getitem__(self, slice__(i, j))

取余

s % obj

__mod__(self, value)

减法

a - b

__sub__(self, value)

对应bool类型

obj

__truth__(self)

比较(小于)

a < b

__lt__(self, value)

比较(小于等于)

a <= b

__le__(self, value)

等于

a == b

__eq__(self, value)

不等于

a != b

__ne__(self, value)

比较(大于)

a >= b

__ge__(self, value)

比较大于等于

a > b

__gt__(self, value)

注:可使用定义私有形式的对应函数方法的方式,使任意类型的对象进行操作符运算。如:

class Phone(object):

def __init__(self, name, price):

self.name = name

self.price = price

def __lt__(self,phone):

return self.price < phone.price

def __le__(self,phone):

return self.price <= phone.price

def __eq__(self,phone):

return self.price == phone.price

def __ne__(self,phone):

return self.price != phone.price

def __ge__(self,phone):

return self.price > phone.price

def __gt__(self,phone):

return self.price >= phone.price

if __name__ == "__main__":

mi5 = Phone('xiaomi',2000)

iphone = Phone('apple',7000)

print(mi5 < iphone) #True

print(mi5 <= iphone) #True

print(mi5 == iphone) #False

print(mi5 != iphone) #True

print(mi5 > iphone) #False

print(mi5 >= iphone) #False

另外,可以定义右运算符的操作,这种操作符仅在运算符左侧的实例没有对应的运算符操作定义,且右侧实例有右运算符定义的情况下起效。

右运算符的函数方法有:

__radd__、__rsub__、__rmul__、__rfloordiv__、__rtruediv__、__rmod__、__rdivmod__、__rpow__、__rlshift__、__rshift__、__rand__、__ror__、__rxor__

对于自运算同样有额外的定义方式,即a += 1等。可以定义自运算的方法名有:

__iadd__、__isub__、__imul__、__ifloordiv__、__itruediv__、__imod__、__ipow__、__ilshift__、__irshift__、__iand__、__ior__、__ixor__

以上实例方法不能通过__setattribute__设置。需要直接定义起效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值