Найти в Дзене

Классы в Python

Что такое ООП? 🧩
ООП расшифровывается как Объектно - Ориентированное Программирование. Python - это объектно - ориентированный язык, который позволяет структурировать код с помощью классов и объектов для лучшей организации и повторного использования. Преимущества ООП ✨ 💡 Совет: Принцип DRY означает, что следует избегать повторения одного и того же кода. Выносите повторяющийся код в функции или классы и используйте его повторно. Классы и объекты - это две основные концепции объектно-ориентированного программирования. Класс определяет, как должен выглядеть объект, а объект создаётся на основе этого класса. Например: При создании объекта из класса он наследует все переменные и функции, определённые внутри этого класса. В следующих главах вы узнаете, как: Почти всё в Python является объектом со своими свойствами и методами. Класс похож на конструктор объектов или «чертёж» для создания объектов. Создание Класса 📝
Чтобы создать класс, используйте ключевое слово class: Пример
Создадим клас
Оглавление

Что такое ООП? 🧩
ООП расшифровывается как
Объектно - Ориентированное Программирование.

Python - это объектно - ориентированный язык, который позволяет структурировать код с помощью классов и объектов для лучшей организации и повторного использования.

Преимущества ООП ✨

  • Предоставляет чёткую структуру программ
  • Облегчает поддержку, повторное использование и отладку кода
  • Помогает соблюдать принцип DRY (Не Повторяйся)
  • Позволяет создавать переиспользуемые приложения с меньшим объёмом кода

💡 Совет: Принцип DRY означает, что следует избегать повторения одного и того же кода. Выносите повторяющийся код в функции или классы и используйте его повторно.

Классы и объекты - это две основные концепции объектно-ориентированного программирования.

Класс определяет, как должен выглядеть объект, а объект создаётся на основе этого класса. Например:

-2

При создании объекта из класса он наследует все переменные и функции, определённые внутри этого класса.

В следующих главах вы узнаете, как:

  • Создать класс
  • Создать объекты
  • Получить доступ к членам класса
  • И многое другое!

Классы/Объекты в Python

Почти всё в Python является объектом со своими свойствами и методами.

Класс похож на конструктор объектов или «чертёж» для создания объектов.

Создание Класса 📝
Чтобы создать класс, используйте ключевое слово
class:

Пример
Создадим класс с именем
MyClass и свойством x:

-3

Создание Объекта 🎯

Теперь мы можем использовать класс MyClass для создания объектов:

Пример
Создадим объект с именем p1 и выведем значение x:

-4

Метод __init__() ⚙️
Приведённые выше примеры являются простейшими формами классов и объектов и не слишком полезны в реальных приложениях.

Чтобы понять смысл классов, нужно разобраться со встроенным методом __init__().

У всех классов есть метод __init__(), который всегда выполняется при инициализации класса.

Используйте метод __init__() для присваивания значений свойствам объекта или других операций, необходимых при создании объекта:

Пример
Создадим класс
Person, используя метод __init__() для присваивания значений имени и возрасту:

-5

💡 Примечание: Метод __init__() автоматически вызывается каждый раз, когда класс используется для создания нового объекта.

Метод __str__() 📄
Метод
__str__() управляет тем, что должно возвращаться при представлении объекта класса в виде строки.

Если метод __str__() не задан, возвращается строковое представление объекта:

Пример
Строковое представление объекта
БЕЗ метода __str__():

-6

Пример
Строковое представление объекта
С методом __str__():

-7

Свойства Объектов 🎯

Свойства объекта - это переменные, которые принадлежат объекту и описывают его состояние. Они определяются в классе и инициализируются через метод __init__(). Обращение к свойству объекта осуществляется по схеме: объект.свойство

Пример
В классе
Person свойствами являются name (имя) и age (возраст):

-8

Изменение Свойств Объекта 🔄

Вы можете изменять свойства объектов следующим образом:

Пример
Установим возраст p1 в 20 лет:

-9

Динамическое добавление свойств 🎪

В Python можно добавлять новые свойства объекту даже после его создания!

Пример

-10

Свойства класса vs свойства объекта 🆚

  • Свойства класса — принадлежат всем объектам класса
  • Свойства объекта — уникальны для каждого объекта

Пример

-11

Проверка существования свойств 🔍

Используйте функцию hasattr() для проверки наличия свойства у объекта:

Пример

-12

Создание Методов 🔧

Вы можете создавать собственные методы внутри объектов. Методы в объектах - это функции, принадлежащие объекту.

Создадим метод в классе Person, который будет выводить приветствие, и выполним его на объекте p1:

-13

💡 Примечание: Параметр self - это ссылка на текущий экземпляр класса, используемая для доступа к переменным, принадлежащим классу.

Параметр self 🤖

Параметр self - это ссылка на текущий экземпляр класса, используемая для доступа к переменным, принадлежащим классу.

Его не обязательно называть self - вы можете использовать любое имя, но он должен быть первым параметром любой функции в классе:

Пример
Используем слова mysillyobject и abc вместо
self:

-14

Инструкция pass ⏭️

Определения классов не могут быть пустыми, но если у вас по какой-то причине есть определение класса без содержимого, добавьте инструкцию pass, чтобы избежать ошибки.

-15

Малоизвестный трюк: 🎩

Используйте __slots__ для оптимизации памяти!
Определив __slots__ в классе, вы явно перечисляете все разрешённые атрибуты, что сокращает потребление памяти и ускоряет доступ к атрибутам.

Пример:

-16

Это особенно полезно при создании миллионов экземпляров! 🚀

Малоизвестный трюк с свойствами: 🎩

Используйте vars() для просмотра всех свойств объекта!

Пример:

-17

Это отличный способ для отладки и динамической работы с объектами! 🚀