Python

Python クラスで四則演算子をoverloadingする

演算子に対応した関数を実装する。

operator.__add__ (a, b) 数値 a および b について a + b を返します。
operator.__sub__(a, b) 数値 a および b について a – b を返します。
operator.__mul__(a, b) 数値 a および b について a * b を返します。
operator.__truediv__(a, b) 2/3 が 0 ではなく 0.66 となるような a / b を返します。 “真の” 除算としても知られています。

operator — 関数形式の標準演算子 — Python 3.10.0b2 ドキュメント
class Result:
    def __init__(self, score1, score2):
        self.score1 = score1
        self.score2 = score2

    def __add__(self, other):
        return Result(self.score1 + other.score1,
                      self.score2 + other.score2)

result1 = Result(500, 200)
result2 = Result(300, 400)

total_results = result1 + result2
print(total_results.score1)  # 800
print(total_results.score2)  # 600