在自定数据格式,需要进行算术、逻辑运算时,可以使用运算符重载,即可像原有的数据一样使用数学符号表达式。python中的运算符重载是通过重载特殊的系统方法来实现的,文档中称为special methods,函数本身一般一双下划线开头和结尾。
加法示例
自定义一个类似复数的数据格式,在没有重载__add__的情况下
#!/usr/bin/python
class MyDemoClass:
def __init__(self,inputI,inputQ):
self.Ivalue = inputI
self.Qvalue = inputQ
pass
def __del__(self):
pass
if __name__ == '__main__':
a = MyDemoClass(10,20)
b = MyDemoClass(20,30)
c = a + b
print(c.Ivalue)
print(c.Qvalue)
pass
运行脚本得到的结果
Traceback (most recent call last):
File "test.py", line 21, in <module>
c = a + b
TypeError: unsupported operand type(s) for +: 'MyDemoClass' and 'MyDemoClass'
重载__add__函数之后
#!/usr/bin/python
class MyDe