Point
とArea
クラスは、C#がどのようにPoint
とSize
を持っているかと似ています。あなたが見ることができるように他のwidth, height
を持っていながら、1はx, y
を持っている以外、2つのクラスが、正確な重複しているAreaとPointの共通基本クラスはどのように実装すればいいですか?
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
# Many other magic methods too!
class Area:
def __init__(self, width=0, height=0):
self.width = width
self.height = height
def __add__(self, other):
return Area(self.width + other.width, self.height + other.height)
# Many other magic methods too!
:ここでは、2つのクラスの簡単な実装があります。
これらの2種類の基本クラスを実装するための良い解決策は何でしょうか?
@Lucian「あなたが見ることができるように、他のは '幅、height'を有している1は、' X、y'を持っている以外、2つのクラスが、正確な複製である。」おそらく*ので、 *ベースクラスは複数のクラスで重複したコードを取り除きます。それが最善の解決策であると言っているわけではありませんが、** a **解決策です。 –
それぞれは2つのパラメータを必要としますが、必ずしも共通の親クラスを正当化するのに十分な関係にはありません。 – TigerhawkT3
@ TigerhawkT3 2つの属性の異なる名前のみ... ... –