Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โอเวอร์โหลดโอเปอเรเตอร์ใน Python


สมมติว่าคุณได้สร้างคลาส Vector เพื่อเป็นตัวแทนของเวกเตอร์สองมิติ จะเกิดอะไรขึ้นเมื่อคุณใช้ตัวดำเนินการ plus เพื่อเพิ่มพวกมัน เป็นไปได้มากที่ Python จะตะโกนใส่คุณ

อย่างไรก็ตาม คุณสามารถกำหนดเมธอด __add__ ในคลาสของคุณเพื่อทำการบวกเวกเตอร์ จากนั้นโอเปอเรเตอร์บวกจะทำงานตามที่คาดไว้ -

ตัวอย่าง

#!/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)