পাইথনে বাইনারি অপারেটর (+, -, * ইত্যাদি) ওভারলোড করার মতোই একাধিক অপারেন্ডের সাথে ওভারলোড করা যায়। পাইথন চেইনড অপারেশন (a + b + c) কে (a + b) + c হিসেবে ইভ্যালুয়েট করে।
উদাহরণ: কমপ্লেক্স নম্বর ক্লাসে + ওভারলোড
class Complex:
def __init__(self, real, imag):
self.real = real
self.imag = imag
def __add__(self, other):
real = self.real + other.real
imag = self.imag + other.imag
return Complex(real, imag)
def display(self):
print(f"{self.real} + {self.imag}i")
# একাধিক অপারেন্ড
a = Complex(10, 5)
b = Complex(5, 10)
c = Complex(2, 2)
d = a + b + c # (a + b) + c
d.display()
আউটপুট
17 + 17i
ব্যাখ্যা
a + b→Complex(15, 15)রিটার্ন করেComplex(15, 15) + c→Complex(17, 17)রিটার্ন করে- প্রতিটি
+কল__add__মেথড আহ্বান করে
অন্যান্য অপারেটর: __mul__, __sub__, __matmul__ (@), __truediv__ ইত্যাদি একই প্যাটার্নে ওভারলোড করা যায়।