python重载“+”操作符

python重载“+”操作符python中默认是只能对数字类型的对象做加法运算的,不能对两个一般对象做加法运算,但是我们可以通过重载的方式来实现两个一般对象的加法。比如我们

大家好,欢迎来到IT知识分享网。
python重载“+”操作符"

python中默认是只能对数字类型的对象做加法运算的,不能对两个一般对象做加法运算,但是我们可以通过重载的方式来实现两个一般对象的加法。

比如我们有一个类S,表示一个长方形的面积,现有类S的两个对象S1和S2,那我们怎么实现两个对象的相加,即要实现S1 + S2运算呢?这时我们可以通过重载__add__方法来达到这个目的。

不重载__add__方法

类S的定义如下:

class S: def __init__(self, width, height): self.width = width self.height = height

如果我们直接这样写:

S1 = S(2, 2) S2 = S(3, 3) S3 = S1 + S2

就会直接报这样的错误:

TypeError: unsupported operand type(s) for +: 'S' and 'S'

上面的报错信息告诉我们S不支持加法运算。

重载__add__方法

如果我们添加了__add__方法再做加法运算就不会报错了,如下代码:

class S: def __init__(self, width, height): self.width = width self.height = height def __add__(self, other): return self.width * self.height + other.width * other.height S1 = S(2, 2) S2 = S(3, 3) print("S1 + S2 = ", S1 + S2)

上面代码输出如下:

S1 + S2 = 13

可见S对象已经支持了加法运算。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58901.html

(0)
上一篇 2024-07-01 16:45
下一篇 2024-07-01 19:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信