Giả sử bạn đã tạo một lớp Vector để biểu diễn vectơ hai chiều, điều gì xảy ra khi bạn sử dụng toán tử cộng để cộng chúng? Có khả năng lớn Python sẽ báo lỗi.
Tuy nhiên, bạn có thể định nghĩa phương thức __add__ trong lớp của mình để thực hiện phép cộng vectơ, và khi đó toán tử cộng sẽ hoạt động như mong đợi:
Ví dụ
#!/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
Kết quả
Khi mã trên được thực thi, nó cho kết quả sau:
Vector(7, 8)