В Python метод __init__ служит для определения конструктора класса. Конструктор класса содержит набор операторов, которые выполняются при создании объекта.
Как только объект класса создан, вызывается метод __init__. С помощью этого метода можно выполнить любую инициализацию, которую требуется провести для объекта.
Синтаксис
Python объявляет метод __init__ внутри класса, используя следующий синтаксис:
class ClassName:
def __init__(self, 'arguments like name, role, etc' ):
# Required Initialisations
# Other member functions
……
…….
Выполнение класса
Мы определяем класс с помощью ключевого слова class и ставим двоеточие. Всё, что находится ниже этого синтаксиса, является частью класса.
Чтобы понять, как работает функция __init__, рассмотрим пример класса.
class Employee:
def __init__(self,name,role):
self.name = name
self.age = age
В методе.__init__() определяются свойства, которые должны быть у всех объектов «Сотрудник». При создании нового объекта «Сотрудник» метод.__init__() устанавливает начальное состояние этого объекта, присваивая значения его свойствам. Таким образом,.__init__() выполняет инициализацию каждого нового экземпляра класса.
class Employee:
def __init__(self,name,role):
self.name = name
self.role = role
def emp_details(self):
print(self.name,"is a good",self.role)
e1 = Employee('steven','developer')
e2 = Employee('david','IT analyst')
e3 = Employee('john','developer')
e1.emp_details()
e2.emp_details()
e3.emp_details()
В приведённом выше коде мы создали класс «Сотрудник» и передали имя «Стивен» в качестве аргумента. Этот аргумент будет передан методу __init__ для инициализации объекта.
Ключевое слово self представляет экземпляр класса и связывает его атрибуты с заданными аргументами.
Вывод кода показан на рисунке ниже.

Наследование
Наследование — одна из важнейших тем в объектно-ориентированном программировании (ООП). Оно позволяет создавать новый класс (дочерний класс), который является изменённой версией существующего класса (родительского класса).
Используя наследование, мы можем понять, как с помощью этой функции мы можем передавать свойства одного класса другому.
В приведенном ниже коде приведен синтаксис того, как работает наследование.
class Parent_Class_Name:
# Parent class code block
class Child_Class_Name(Parent_Class_Name):
# Child_Class_Name
Класс Child наследует свойства и функции от родительского класса и использует конструктор родительского класса.
В приведенном ниже коде показано, как работает наследование с помощью метода __init__.
class employee:
no_of_leaves = 8
def __init__(self,name,designation):
self.name = name
self.deignation = designation
def printdetails(self):
return f"The name is {self.name}.Role is {self.role}"
class developer(employee):
def __init__(self,name,designation,skill):
self.name = name
self.desigantion = designation
self.skill = skill
def printdev(self):
return f" the developer name is {self.name} and designation is {self.designation} and skills are {self.skill}"
john = employee("John","coder")
david = developer("david","programmer" ,"python")
print(david.no_of_leaves)
В представленном коде мы создали два класса: родительский «сотрудник» и дочерний «разработчик». В родительском классе мы определили атрибут no_of_leaves. Поскольку класс «разработчик» наследует атрибуты класса «сотрудник», он также получает доступ к атрибуту no_of_leaves.
Когда мы запросили количество отпусков для разработчика Дэвида, код вернул значение «8» из родительского класса, так как атрибут no_of_leaves был унаследован.
Результатом приведенного выше кода будет 8.

Заключение
В этом руководстве по Python мы изучили функции и метод __init__. Также мы рассмотрели основные концепции объектно-ориентированного программирования (ООП) и наследования в Python.
Кроме того, мы узнали, как использовать наследование в методе и применять его в коде.