python實現對象'+'操做符

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

相關文章
相關標籤/搜索