Pythonでの演算子のオーバーロード
2次元ベクトルを表すVectorクラスを作成したとすると、plus演算子を使用してそれらを追加するとどうなりますか?おそらくPythonはあなたに怒鳴ります。
ただし、クラスで__add__メソッドを定義してベクトル加算を実行すると、plus演算子は期待どおりに動作します-
例
#!/usr/bin/python class Vector: def __init__(self, a, b): self.a = a self.b = b def __str__(self): return 'Vector (%d, %d)' % (self.a, self.b) def __add__(self,other): return Vector(self.a + other.a, self.b + other.b) v1 = Vector(2,10) v2 = Vector(5,-2) print v1 + v2
出力
上記のコードを実行すると、次の結果が生成されます-
Vector(7,8)
-
Pythonでの継承
この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen
-
オーバーロード演算子はPythonでどのように機能しますか?
+演算子を使用して数値を追加すると同時に、文字列を連結できることはわかっています。これが可能なのは、+演算子がintクラスとstrクラスの両方によってオーバーロードされているためです。演算子は基本的にそれぞれのクラスで定義されたメソッドです。演算子のメソッドの定義は、演算子のオーバーロードと呼ばれます。たとえばカスタムオブジェクトで+演算子を使用するには、__add__というメソッドを定義する必要があります。 例 次のコードは、演算子のオーバーロードがどのように機能するかを簡単に理解できるようにします import math class Circle: