super()

1. Что такое super()

  • super() возвращает родительский (базовый) класс текущего класса.

  • Позволяет вызывать методы родителя без явного указания имени класса.

  • Часто используется для расширения поведения родительских методов при наследовании.


2. Синтаксис

class Child(Parent):
    def method(self):
        super().method()  # вызов метода родителя
  • В Python 3 достаточно super() без аргументов.

  • В Python 2 нужно было указывать класс и self: super(Child, self).method()


3. Примеры использования

Пример 1: Расширение метода родителя

class Animal:
    def speak(self):
        print("Animal speaks")

class Dog(Animal):
    def speak(self):
        super().speak()   # вызов метода родителя
        print("Dog barks")

dog = Dog()
dog.speak()
# Output:
# Animal speaks
# Dog barks

Пример 2: Инициализация родительского конструктора

Пример 3: В множественном наследовании

  • super() удобно использовать для правильного порядка вызовов в сложных иерархиях.


4. Применение в автотестах

  • Page Object Model: наследование базового класса страницы

  • Расширение утилитарных методов:


💡 Вывод:

  • super() позволяет вызывать методы родительских классов, расширять их поведение и корректно работать с наследованием, особенно в множественном наследовании.

  • Очень полезен в Page Object Model, расширении утилит и построении иерархий классов в автотестах.

Last updated

Was this helpful?