Я хочу написать абстрактный класс, который заставит наследующие классы реализовать все методы и свойства в моем абстрактном классе.
Кроме того, я хочу использовать сеттеры и геттеры для моего абстрактного свойства, чтобы сделать мой код незагроможденным и красивым.
Однако текущая реализация:
import abc
class Component(metaclass=abc.ABCMeta):
@property
@abc.abstractmethod
def status(self):
pass
@property
@status.setter
@abc.abstractmethod
def status(self, value):
pass
принуждает класс наследования реализовать геттер для моего абстрактного геттера свойств, но не принуждает создавать установщик свойства (что именно я и хочу)
Как я могу добиться такого поведения, не теряя всех преимуществ от применения дальнейшего упомянутого метода (т. е. написания новых методов и их выполнения в моем установщике абстрактного класса)?