Найти в Дзене
IT для всех

Python. Классы

Создание объекта класса Объект - это структура данных, которая может содержать в себе переменные(атрибуты) и код(методы). Когда мы хотим создать свой объект, мы должны создать класс этого объекта. Напишем пустой класс, который ничего в себе не содержит. Класс определяется с помощью ключевого слова class: А создание объекта класса подобно вызову функции: Здесь мы инстанцируем новый объект в памяти, то есть создаем объект класса. Если попробовать вывести значение переменной someone, то увидим следующее: <__main__.People object at 0x000002183913A470> Здесь написано, что someone является объектом класса People и что он находится в указанной области памяти. Это вывелось из-за того, что наш класс ничего не содержит, а его методы(если бы они были) ничего не возвращают. Если же попробовать узнать тип созданного объекта с помощью команды type(someone), то покажет, то что мы и так знаем: <class '__main__.People'> Конструкторы В Python подобно другим языкам программирования есть конструкторы.
Оглавление

Создание объекта класса

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

Напишем пустой класс, который ничего в себе не содержит. Класс определяется с помощью ключевого слова class:

А создание объекта класса подобно вызову функции:

-2

Здесь мы инстанцируем новый объект в памяти, то есть создаем объект класса.

Если попробовать вывести значение переменной someone, то увидим следующее:

<__main__.People object at 0x000002183913A470>

Здесь написано, что someone является объектом класса People и что он находится в указанной области памяти. Это вывелось из-за того, что наш класс ничего не содержит, а его методы(если бы они были) ничего не возвращают.

Если же попробовать узнать тип созданного объекта с помощью команды type(someone), то покажет, то что мы и так знаем:

<class '__main__.People'>

Конструкторы

В Python подобно другим языкам программирования есть конструкторы.

Создадим новый класс с двумя видами конструктора:

  1. Конструктор класса по умолчанию - в нашем случае будет работать при отсутствии аргументов, так как их значения мы уже прописали.
  2. Конструктор класса - будет ссылаться сам на себя оперируя аргументами, которые будут переданы непосредственно в создаваемый объект.
-3
  • __init__ - особое имя метода, который инициализирует отдельный объект. Первым параметром всегда должен быть self. Вызывается при создании объекта и передаёт self и другие аргументы в качестве параметров.
  • self(ссылка на самого себя) - не является зарезервированным словом в Python, но общепринято для использования. Необходимо для построения конструкторов. То есть мы ссылаемся на самого себя, а использование подобного синтаксиса поля self.age = age позволит принять значение при создании объекта и обратиться к нужному атрибуту когда нам это понадобиться.

Аналогом self в других языках является, например, this в C Шарп.

При создании объекта класса Cats, мы можем:

-4

Использовать два варианта позиционирования атрибутов:

  1. Когда нет аргументов - используется наш конструктор по умолчанию.
  2. Когда есть аргументы - используется второй конструктор класса.

Выводить отдельные поля объектов(а также изменять):

-5

Соответственно поля объекта cat_1 содержат те значения, которые мы прописали в классе.

А cat_2, те аргументы которые были переданы объекту.

Если бы у нас отсутствовал конструктор по умолчанию, и мы попытались бы создать объект класса без аргументов, то при запуске получили бы исключение. За счёт использования конструктора по умолчанию, у нас есть вариативность работы с аргументами, когда мы точно не знаем будут они у нас или нет.