我有一个抽象类,将用作模板来实现不同类型的子类。 我想定义一些对所有子类都是必需的属性/方法。例如
class BlockModel(ABC):
def __init__(self, position):
self.__position = position
self.__lives = None
self.__hitbox = None
@property
def lives(self):
return self.__lives
@lives.setter
def lives(self, lives):
self.__lives = lives
@property
def hitbox(self):
return self.__hitbox
@hitbox.setter
def hitbox(self, hitbox):
self.__hitbox = hitbox
@abstractmethod
def method1(self)
#some abstract methods
@abstractmethod
def method2(self)
#some abstract methods
例如,当我创建一个子类时
class Block1(BlockModel):
def __init__(self,position_):
super().__init__(position_)
self.__lives=1
self.__hitbox = pygame.Rect(self.__position['x'],
self.__position['y'],
5,
5)
#Implement abstract methods
第二类不继承属性__position
,__lives
,__hitbox
,但是没有下划线的公共属性(我知道其中没有真正的私有属性/方法蟒蛇)。还有一种方法也可以在子类中将它们保持私有(带下划线)吗?