Автор оригинала: 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. Основная идея этого является, это специальный метод, который автоматически вызывается, когда создается объект этого класса.