Если вы действительно хотите обойти все реализации дочернего класса, просто назовите базовый класс явно, например, замените:
self.method_name() # Calls own class (or first parent with implementation if own class lacks it)
super().method_name() # Call first parent class with implementation of the method
на:
GrandparentClass.method_name(self) # Explicitly calls specific class's version of the method with self
Для ясности, GrandparentClass
- это местозаполнитель для фактического имени класса верхнего уровня, который вы хотите вызвать, это не специальное имя / функция, как super()
.
Примечание. Если вы делаете это, скорее всего, у вас есть проблема XY , которую, вероятно, следует решить вместо нее.