__init__ и self в python
Что происходит во время вызова __init__ под капотом python? Каким образом реализован этот метод, а также self?
Ответы (1 шт):
__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 задаётся неявно, а во втором явно. Но отличий в исполнении нет