Зачем нужны абстрактные методы в Python?
Абстрактные методы в Python нужны для того, чтобы их обязательно переопределили.
Абстрактные методы, по определению, не имеют реализации. Декоратор @abstractmethod выглядит как какой-то костыль существующий из-за того, что в Python нельзя объявить метод с пустым телом как это происходит в других ЯП, в нём хотя бы pass должен присутствовать. Зачем в этом примере добавили print в абстрактный метод знает только автор этого примера, оно не нужно.