プロパティに関してますます具体的になるという意味で階層を記述するPythonタイプがいくつかあります。それを言葉で説明しようとする代わりに、ここに例があります:
class A:
@property
def prop1(self):
return self._prop1
class B:
@property
def prop1(self):
return self._prop1
@property
def prop2(self):
return self._prop2
class C:
@property
def prop1(self):
return self._prop1
@property
def prop2(self):
return self._prop2
@property
def prop3(self):
return self._prop3
したがって、クラスリストを下に移動すると、B
のすべてのプロパティがA
あり、次にいくつかの追加のプロパティがあります。C
のすべてのプロパティがB
あり、次にいくつかの追加のプロパティがあります。可能であれば、上記の定義の重複を最小限に抑えたいと思います。
明らかな解決策の1つは、継承を使用してB
、のサブクラスを作成するA
ことです。ただし、これらのタイプのセマンティクスはis-a関係に従いません。なりたくisinstance(bObject, A)
ないTrue
。サブクラスを使用せずにこの属性の共有を簡単に許可するPythonの代替方法はありますか?