Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python operator overloading với nhiều operand

Overload operator nhiều operand tương tự binary operator. Ví dụ overload + cho class Complex:

class Complex(object):
    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(str(self.real) + " + " + str(self.imag) + "i")

a = Complex(10, 5)
b = Complex(5, 10)
c = Complex(2, 2)
d = a + b + c
d.display()

Kết quả: 17 + 17i

a + b + c đánh giá left-to-right: (a + b) + c, mỗi + gọi __add__.