Вернуть переопределенный метод? В общем возникла такая ситуация. В одном из классов (а точнее в модели) какой-то прекрасный человек переопределил стандартный метод и теперь он не работает. Другими словами мне нужно унаследовать классом 3 - всё из класса 2, а нужный метод из класса 1. Как это сделать? Как я понимаю это по идее делается с помощью super...
Да, правильно понимаете, для доступа к переопределенному методу из родительского класса можно использовать ключевое слово super. В вашем случае, вы можете вызвать переопределенный метод из класса 1 в классе 3 следующим образом:
class Class1: def method(self): # Ваш переопределенный метод class Class2(Class1): def method(self): super().method() # Вызываем переопределенный метод из класса 1 class Class3(Class2): pass obj = Class3() obj.method() # Вызов переопределенного метода из класса 1
Таким образом, при вызове метода method() у объекта класса 3, будет выполнен код из переопределенного метода класса 1.
Да, правильно понимаете, для доступа к переопределенному методу из родительского класса можно использовать ключевое слово super. В вашем случае, вы можете вызвать переопределенный метод из класса 1 в классе 3 следующим образом:
class Class1:def method(self):
# Ваш переопределенный метод
class Class2(Class1):
def method(self):
super().method() # Вызываем переопределенный метод из класса 1
class Class3(Class2):
pass
obj = Class3()
obj.method() # Вызов переопределенного метода из класса 1
Таким образом, при вызове метода method() у объекта класса 3, будет выполнен код из переопределенного метода класса 1.