Автор оригинала: Pankaj Kumar.
Python Class Init.
Понимание функции init Python Class
Давайте посмотрим с фрагментом короткого кода и посмотрим, что мы пытаемся понять:
class Student(object):
def __init__(self, something):
print("Init called.")
self.something = something
def method(self):
return self.something
my_object = Student('Jetty')
Что делает __init__ Способ сделать? Почему нужно? Давай выясним.
Что делает метод init Python?
Когда новый экземпляр A Класс Python Создан, это __init__ Метод, который называется и оказывается очень хорошим местом, где мы можем изменить объект после его создания.
Это означает, что когда мы создаем новый экземпляр класса, как:
my_object = Student('Jetty')
В приведенном выше фрагменте, когда мы назвали студентами с «молым» (что может быть на самом деле что угодно), он передается на __init__ Функция как аргумент, причал. Давайте попробуем запустить этот сценарий сейчас:
__Init__ конструктор?
На самом деле да. __init__ это конструкция оопа. __init__ это конструктор для класса. Так же, как упоминалось выше, __init__ Метод называется, как только распределяется память для объекта. Посмотрим, что мы сделали выше в нашем фрагменте:
def __init__(self, something):
self.something = something
Использование Я Важно, потому что если вы этого не сделаете и реализуете свой метод, как:
def __init__(self, something):
_something = something
что-то Параметр будет храниться в переменных в стеке и будет отброшен, как только __init__ Метод выходит из прицела.
Как __init__ работает с наследством?
Когда у нас есть класс, наследующий из суперкласса, __init__ Метод работает так же. Давайте попробуем продемонстрировать, что произойдет, когда мы пытаемся инициализировать детский класс:
class User(object):
def __init__(self, something):
print("User Init called.")
self.something = something
def method(self):
return self.something
class Student(User):
def __init__(self, something):
User.__init__(self, something)
print("Student Init called.")
self.something = something
def method(self):
return self.something
my_object = Student('Jetty')
В приведенном выше коде, когда мы инициализировали объект Student, это будет вывод, который создается при запуске вышеуказанной программы: Итак, перед ребенком класс родительского класса назывался. Вы можете контролировать это, изменяя заказ, в котором init вызывается для родителя или детского класса. Подробнее при наследовании Python.
Заключение
Подводя итоги, Python __init__ Это то, что называется конструктором в других языках ой, такие как C ++ и Java. Основная идея этого является, это специальный метод, который автоматически вызывается, когда создается объект этого класса.