В этой части учебника мы рассмотрим конструктор в Python 3, что это такое и как с этим работать.
Что такое конструктор класса:
Для начала чтобы перейти к самому коду, давайте не много разберём что это вообще такое.
Конструктор класса нужен для назначения действ при создание объекта, обычно используется для объявление свойств, например в прошлой части мы создали метод add_marka()
, где объявляли свойство market
, но это делать через отдельный метод не очень удобно.
Поэтому существует конструктор класса, благодаря ему вы можете сразу создавать свойство без использования отдельного метода.
Конструктор в Python:
Для объявления конструктора класса, нужно создать метод с названием __init__()
, и эти двойные подчёркивания они обязательны, все стандартные методы для классов имеют их.
Теперь разберём не большой пример, вот он:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # Создаём класс Car class Car: # Создаём конструктор класса def __init__(self): # Назначаем свойство marka self.marka = "Ваз" # Используем метод show_marka() self.show_marka() # Создаём метод show_marka() def show_marka(self): # Вывод свойства print(self.marka) def main(): # Создаём объект класса Car vaz = Car() |
Как видите теперь мы объявляем свойство marka
в конструкторе, также запускаем метод show_marka()
, из-за чего нам не надо вызывать его в основной программе, вот что выводиться в терминал:
Как видите вывелось тоже самое, хоть мы не выводили в основной программе, всё из-за того, что мы выводим значение marka
, при объявление объекта.
Но что делать если нам надо из основной программы назначить значения для marka
, тут для конструктора добавим атрибуты, которые будем присваивать при объявление объекта.
Вот как теперь выглядит наш конструктор:
1 2 3 | def __init__(self, marka): self.marka = marka self.show_marka() |
И вот как теперь объявляем объект или экземпляр класса Car
:
1 | vaz = Car(marka="BMV") |
Вот что должно теперь вывестись:
Как видите всё работает, то есть нам надо как для обычной функции или метода в конструкторе назначить атрибуты и потом при вызове их передать в класс, как тогда, объявляем функцию.
Деструктор Python 3:
Последние что стоит рассмотреть, так это деструктор, вообще в Python он и не особо то что нужен, но давайте всё по порядку.
Деструктор он срабатывает при удаление объекта и обычно используется для удаления всех его свойств, как например в C++, но в Python в этом нет смысла, так как в нём всё автоматически, поэтому им редко пользуется.
Но пример не большой с ним я вам покажу, чтобы вы знали как он работает, вот пример:
1 2 3 4 | # Создание деструктора def __del__(self): # Вывод в терминал "Удаление объекта" print("Удаление объекта") |
Его мы добавили в класс который делали выше, и как видите чтобы создать деструктор, нужно создать метод __del__()
, и как вы поняли это один из стандартных методов класса в Python.
Больше нечего мы не меняли, поэтому у нас выцедиться почти всё тоже самое, вот что получилось:
Как видите всё просто.
Вывод:
В этой статье мы разобрали что такое конструктор в Python 3, показали как с этим работать, ещё немного затронули деструктор.