码迷,mamicode.com
首页 > 编程语言 > 详细

python实现对象'+'操作符

时间:2019-02-15 18:09:29      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:utf-8   odi   col   type   __init__   sel   add   python对象   print   

python对象实现__add__,__radd__方法即可实现‘+‘操作符

demo:

 1 # coding=utf-8
 2 
 3 class Person(object):
 4     def __init__(self, age):
 5         self.age = age
 6     def __add__(self, other):
 7         return self.age + other
 8     def __radd__(self, other):
 9         return self.age + other
10 
11 print(Person(5) + Person(10))

输出结果:

15

注意:

如果 a 有 __add__ 方法, 而且返回值不是 NotImplemented, 调用a.__add__(b), 然后返回结果。
如果 a 没有 __add__ 方法, 或者调用 __add__ 方法返回NotImplemented, 检查 b 有没有 __radd__ 方法, 如果有, 而且没有返回 NotImplemented, 调用 b.__radd__(a), 然后返回结果。
如果 b 没有 __radd__ 方法, 或者调用 __radd__ 方法返回NotImplemented, 抛出 TypeError, 并在错误消息中指明操作数类型不支持。

python实现对象'+'操作符

标签:utf-8   odi   col   type   __init__   sel   add   python对象   print   

原文地址:https://www.cnblogs.com/reboot777/p/10384513.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!