問題一覧に戻る
中級オブジェクト指向基礎
問題86: 特殊メソッド - 演算子
Pythonでは演算子オーバーロードにより、独自クラスで+や==などの演算子を使えるようにできます。__add__メソッドで加算演算子(+)を、__eq__メソッドで等価演算子(==)を定義します。これによりクラスのインスタンス同士を直感的な方法で操作できるようになります。
# 演算子オーバーロード
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
# 加算演算子
def (self, other):
return Point(self.x + other.x, self.y + other.y)
# 等価演算子
def (self, other):
return self.x == other.x and self.y == other.y
# 演算子を使用
p1 = Point(1, 2)
p2 = Point(3, 4)
p3 = p1 p2
print(p3.x, p3.y)