Python重载运算符

假设您已经创建了一个Vector类来表示二维矢量,那么使用plus运算符将其相加会发生什么?Python很可能会对您大吼大叫。

但是,您可以在类中定义__add__方法以执行向量加法,然后plus运算符将按照预期的方式运行-

示例

#!/usr/bin/python
class Vector:
   def __init__(self, a, b):
      self.a = a
      self.b = b
   def __str__(self):
      return 'Vector (%d, %d)' % (self.a, self.b)
   def __add__(self,other):
      return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print v1 + v2

输出结果

执行以上代码后,将产生以下结果-

Vector(7,8)