Computer >> Máy Tính >  >> Lập trình >> Python

Nạp chồng toán tử trong Python

Giả sử bạn đã tạo một lớp Vector để biểu diễn các vectơ hai chiều, điều gì sẽ xảy ra khi bạn sử dụng toán tử cộng để thêm chúng? Rất có thể Python sẽ hét vào mặt bạn.

Tuy nhiên, bạn có thể xác định phương thức __add__ trong lớp của mình để thực hiện phép cộng vectơ và sau đó 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

Đầu ra

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

Vector(7,8)