Инициализирует созданный ранее экземпляр класса.
object.__init__(self[, ...])
-> None
self -- Ссылка на экземпляр.

... -- Позиционные и/или именованные аргументы, играющие роль в процессе инициализации экземпляра. Это аргументы, которые были переданы в выражении конструирования экземпляра.

Данный метод вызывается после того, как экземпляр типа был создан методом __new__(), но до того как он будет возвращён запросившему конструирование коду. Таким образом, оба метода участвуют в конструировании экземпляра.

    class Something:

def __init__(self, a=1, b='да'):

print('инициализируем')

self.my_a = a
self.my_b = b


my_obj = Something(b='нет') # инициализируем

my_obj.my_a # 1
my_obj.my_b # 'нет'

Для того, чтобы гарантировать полноценную инициализацию экземпляра в случаях, когда базовый класс тоже определяет данный метод, класс наследник должен явно вызвать инициализатор родителя:

    class SomethingElse(Something):

def __init__(self, *args, **kwargs):

print('инициализируем наследника')

super().__init__(self, *args, **kwargs)


my_obj = SomethingElse(b='возможно')
# инициализируем наследника
# инициализируем
my_obj.my_b # 'возможно'

На заметку
Попытка вернуть из метода значение отличное от None вызовет TypeError.
Синонимы поиска: object.__init__, object, __init__
На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.