python對象實現__add__,__radd__方法便可實現'+'操做符python
demo:spa
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))
輸出結果:code
15對象
注意:blog
若是 a 有 __add__ 方法, 並且返回值不是 NotImplemented, 調用a.__add__(b), 而後返回結果。
若是 a 沒有 __add__ 方法, 或者調用 __add__ 方法返回NotImplemented, 檢查 b 有沒有 __radd__ 方法, 若是有, 並且沒有返回 NotImplemented, 調用 b.__radd__(a), 而後返回結果。
若是 b 沒有 __radd__ 方法, 或者調用 __radd__ 方法返回NotImplemented, 拋出 TypeError, 並在錯誤消息中指明操做數類型不支持。utf-8