python中加法运算符的重载,Python方法重载
我们想知道数字的和,只要通过就可以了。这是我们做题经常用到的一个符号。但是在python中不能直接使用。我们需要一些代码或者函数来帮助我们实现对象的添加。那么实现加法需要什么呢?边肖在这里告诉你关于运营商超载。可能有人对这个长词不熟悉,我们继续深入研究一下。
支持Python运算符重载。“运算符重载”实际上是一个简单的概念。你有没有想过为什么Python允许你用“”运算符同时实现字符串的加法和串联?这就是运算符重载正在做的事情。
您可以定义使用Python标准运算符符号的对象,这允许您在特定环境中使用特定对象。
关于Python运算符重载的规则:
内置类型的运算符不能重载。
不能新建,只能重载。
有些运算符不能重载-是、与、或与非。
Python操作实际上是通过调用对象的特殊方法来实现的,比如a b:
a=20
b=30
c=a b
d=a.__add__(b)
打印( c: ,c)
打印( d: ,c)操作结果:
c:50
d:50
用于乘法的向量的重载是类似的:
def__mul__(自身,标量):
ifisinstance(标量,数字。Real):
return vector(n * scalarforninself)
else:
returnNotImplemented
def__rmul__(自身,标量):
returnself *标量
注意这里我们的值定义了一个向量乘以一个数的乘积。试试点乘。矩阵乘法被分配给@符号。我们也可以这样定义,然后操作。
def__matmul__(自己,其他):
尝试:
returnsum(a*bfora,binzip(self,other))
exceptTypeError:
returnNotImplemented
def__rmatmul__(自己,其他):
return self @ other # thisonlyworksinpython 3.5
借助运算符重载,我们不仅可以实现加法,还可以实现乘法。当然,运算符重载在我们所熟悉的字符串连接中也扮演着重要的角色。感兴趣的朋友看完文章也可以试试。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。