Комментарии 5
мы говорим: «Сначала создадим общий шаблон "Враг" с базовыми характеристиками
Не "мы" говорим, а хренвастенький архитектор говорит. А мы говорим- создадим класс "сущность" или "npc", а друг он или враг, дракон или библиотекарша- разберемся позднее))
Шучу, если что. Хорошая статья.
Для чего в классе Skeleton переопределен метод init без добавления новой функциональности?
Статья хорошая. Но касаясь работы функции super у меня возникают смутные сомнения, в том что она даёт доступ к функциям РОДИТЕЛЬСКОГО класса! На самом деле в раннем питоне к функциям родительского класса так же обращались, но использовали при этом ИМЕНА родительского класса и это работало... кхм, работало почти всегда, а иногда нет ))). Почему же ввели super? и что она делает? Она предоставляет доступ к функциям первого ПРЕДШЕСТВУЮЩЕГО по ИЕРАРХИИ класса и это НЕ ВСЕГДА будет родительский класс!!! Да в случае одиночного наследования это всегда родительский класс. А вот в случае множественного наследования это не всегда так. Да в дальнейшей цепочке вызовов, скорее всего будет вызвана и функция родительского класса, но не следует забывать, что это именно будет цепочка вызовов, если функции классов правильно спроектированы и обеспечивают эту цепочку.

Изучаем ООП Python: наследования для начинающих с домашним заданием