我有许多描述层次结构的 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
然后是一些额外的属性,依此类推。如果可能的话,我想尽量减少上述定义的重复。
一个明显的解决方案是使用继承,创建B
一个子类A
等等。但是,这些类型的语义不遵循 is-a 关系;我不想isinstance(bObject, A)
成为True
。Python中是否有另一种方法可以直接允许这种属性共享而不使用子类?