Pythonでは、クラスに対して標準の演算子(+、-、*など)の振る舞いをカスタマイズするための機能があります。これを「演算子オーバーロード」と呼びます。
演算子オーバーロードとは
演算子オーバーロードとは、クラスにおいて標準の演算子の振る舞いをカスタマイズする機能です。これにより、クラスのインスタンス間で自然な演算子を使用して操作を行えます。
Pythonでの演算子オーバーロード
Pythonで演算子をオーバーロードするには、クラスに、使用したい演算子に対応した特殊メソッドを定義するだけで簡単に実装することができます。
例えば、__add__メソッドを定義することで、オブジェクトを加算できるようにすることができます。
class Num:
    def __init__(self, num):
        self.num = num
    # 特殊メソッド
    def __add__(self, other):
        if type(other) == Num:
            return self.num + other.num
        raise TypeError()
このクラスを使って、以下のように加算を行うことができます。
one = Num(1)
two = Num(2)
print(f'one + two = {one + two}')  # one + two = 3
このように、Pythonの演算子オーバーロードを利用することで、自然な演算子を使用してクラスのインスタンス間で操作を行うことができます。
まとめ
Pythonの演算子オーバーロードは、クラスのインスタンス間で自然な演算子を使用して操作を行うための強力な機能です。これを理解し、適切に使用することで、Pythonプログラミングの幅が広がります。.