演算子のオーバーロード
PythonではC++のような演算子オーバーロードが可能です。Pythonでは演算子は__add__, __sub__(それぞれ+, -に対応)のような関数にマッピングされており、この関数をオーバーライドすれば演算子のオーバーロードができます。次の例は、プライベートメンバ クラスの継承のサンプルからPointBを派生させ、点(Point)の加算を可能にしたサンプルです。
# class PointB class PointB(PointA) : def __init__(self, x1, y1) : PointA.__init__(self, x1, y1) def __add__(self, other) : return PointB(self._Point__x + other._Point__x, \ self._Point__y + other._Point__y) p1 = PointB(-1.0, 1.0) print p1.get() p2 = PointB(1.0, -1.0) print p2.get() p3 = p1 + p2 # ここで点同士を加算 print p3.get() |