Как вызвать метод из родительского класса python?
Ответы
Карина Абдуллаева
13 февраля 2023
Для вызова метода из родительского класса в Python есть два способа:
- Явное обращение к методу предка
- Функция
super()
Примеры:
class Counter:
def __init__(self):
self.value = 0
def inc(self):
self.value += 1
def dec(self):
self.value -= 1
# Создаем класс-потомок, при вызове inc увеличивающих значение дважды
# Вариант 1 - с прямым обращением к предку:
class DoubleCounter(Counter):
def inc(self):
Counter.inc(self) # явно обращаемся к методу класса предка
Counter.inc(self) # и передаем ссылку на экземпляр
# Вариант 2 - с применением функции super():
class DoubleCounter(Counter):
def inc(self):
super().inc()
super().inc()
num = DoubleCounter()
num.value # 0
num.inc() # В обоих случаях, наследованный метод inc() будет работать одинаково
num.value # 2
Функция super()
названа в честь названия класса-предка: "superclass". Потому что благодаря ей мы получаем ссылку на атрибут предка и заменяем обращение self
, создавая таким образом связанный с текущим классом метод, который будет полноценной "оригинальной версией" из класса-предка.
При чем если предок сменится, то super
в описании класса учтет изменения, и мы получим доступ к поведению нового предка.
0
0