Связывание абстрактных классов со свойствами в python
В данной статье хочу поделиться своим опытом по абстрактным классам. Думаю это будет полезно как разработчикам, только начинающим свой путь, так и уже имеющим опыт. В материале можно посмотреть, как изящно связать свойства и абстрактные классы с реализацией принципа DRY .Для начал кратко пробежимся по определениями и терминам, и далее ответим на вопросы, которые могут логично вытекать из этих определений.Абстрактные классы - это базовые классы, определяющие каркас с методами, обязательными для реализации в наследниках и служащими для создания интерфейсов, однако сами экземпляры таких классов создать нельзя.Абстрактные методы - методы с декоратором @abstractmethod, которые обязаны быть реализованы в дочерних классах.Абстрактный класс может содержать как обычные, так и абстрактные методы.Свойство - реализуется через декораторы @property (для чтения) и @<name>.setter (для изменения и валидации) обеспечивая инкапсуляцию, делая API удобным, при этом позволяя менять внутреннюю реализацию без изменения внешнего кода. Читать далее