__init__ и self в python

Что происходит во время вызова __init__ под капотом python? Каким образом реализован этот метод, а также self?


Ответы (1 шт):

Автор решения: pagislav

__init__ - метод, который вызывается при создании экземпляра класса, в нём можно объявить члены класса, а так же выполнять какие-либо другие действия (например, увеличивать счётчик созданных экземпляров)

self - первый аргумент любого метода по соглашению. При вызове метода self присваивается ссылка на экземпляр, для которого был вызван метод. То есть, для метода класса всегда передаётся хотя бы один аргумент - сам экземпляр ( если не брать в расчёт статические методы). Пример:

class Test:
    def __init__(self):
        self.a = 1
        self.b = 2

    def show_a(self):
        print(self.a)

    def show_b(self):
        print(self.b)

Объявим класс, создадим экземпляр и проведём пару манипуляций

test_ex = Test()
test_ex.show_a()
Test.show_b(test_ex)

В первом случае аргумент self задаётся неявно, а во втором явно. Но отличий в исполнении нет

→ Ссылка