Python __init__ and super(): A Complete Guide to Inheriting and Overriding Methods
Python init super - это два ключевых слова, используемых в классах Python.
Метод __init__ () используется для инициализации атрибутов класса, когда экземпляр класса создается. Это позволяет определить, какие атрибуты будут присвоены начальным значениям, и предоставляет механизм для передачи начальных значений аргументов конструктора класса.
Метод super () используется для вызова родительского класса или надкласса. Это позволяет получить доступ к методам и атрибутам родительского класса из дочернего класса.
Рассмотрим пример использования метода __init__ () и метода super ():
python
class Animal:
def __init__(self, name):
self.name = name
def eat(self):
print('The animal is eating.')
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def bark(self):
print('The dog is barking.')
dog1 = Dog('Rocky', 'Bulldog')
print(dog1.name)
print(dog1.breed)
dog1.eat()
dog1.bark()
В этом примере мы создаем два класса: Animal и Dog. Класс Dog является наследником класса Animal, что позволяет ему наследовать метод eat(). Класс Dog имеет свойство breed и метод bark().
Метод __init__ () в классе Dog используется для инициализации атрибутов класса name и breed. Мы используем метод super () в методе __init__ () класса Dog, чтобы вызвать метод __init__ () родительского класса Animal и передать ему аргумент name. Таким образом, мы можем использовать свойство name в классе Dog, которое было определено в классе Animal.
Используя наследование и метод super (), мы можем создавать более сложные иерархии классов в Python. Они могут содержать множество методов и свойств, которые могут быть унаследованы и использованы в разных контекстах.