Categories: Python

Классы в Python. Как в этом разобраться и зачем они нужны.

Чтобы понять Классы в Python – давайте начнем с понимания сущностей. Сущности – это слово, которое используется, чтобы описать что-то, что существует или является реальным объектом, и может быть названо и описано. В простых словах, сущности – это вещи, которые можно увидеть, потрогать или описать.
Мы все с Вами знаем, что есть веши кокретные: моя собака Лакки, а есть вещи абстрактные: животные, собаки.

В программировании для определения и работы с сущностями существуют классы. Классы позволяют абстрагировать реальные объекты и описывать их характеристики и действия.

Классы в программировании – это специальные инструменты, которые помогают нам описывать сущности и их свойства. Классы позволяют нам определить, какие атрибуты (свойства) имеет сущность, и какие действия она может выполнять.
Также справедливым будет добавить что:

  • Переменные – это обычно конкретные сущности или объекты, которые хранят определенные данные. Например, переменная age может хранить конкретное значение возраста, а переменная name может хранить конкретное имя. Переменные представляют конкретные значения.
  • Классы – это более абстрактные сущности, которые определяют структуру и поведение объектов. Они служат как шаблоны для создания конкретных объектов (экземпляров класса). Например, класс “Животное” определяет, что объекты этого класса будут иметь атрибуты, такие как имя и вид, и методы, такие как “делать звук”. Классы описывают общие характеристики и действия для множества объектов.

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

Классы – это своего рода шаблон для создания объектов.

Рассмотрим все на конктретном примере.

Классы в Python. Пример класса – Животные

Давайте рассмотрим пример класса на понятном примере – животных.

class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def make_sound(self, sound):
        return f"{self.name} издает звук: {sound}"

В этом классе Animal у нас есть два атрибута:

name (имя животного)

species (вид животного),

и один метод make_sound (делать звук). Конкретный звук мы будем передавать через переменную sound. Рассмотрим подробнее

Атрибуты класса

Атрибуты класса – это переменные, которые описывают характеристики объекта, созданного на основе класса. Они определяются внутри класса и могут быть общими для всех экземпляров класса.

Для определения атрибута класса, вы можете использовать ключевое слово self внутри метода __init__ (конструктор), который вызывается при создании экземпляра класса.

__init__

__init__ – это конструктор класса в Python. Конструктор – это метод, который вызывается при создании нового экземпляра класса. Он используется для инициализации атрибутов объекта, задания начальных значений и выполнения других операций, необходимых при создании объекта.
То есть с помощью этого методы мы добавляем все характеристики класса

Синтаксис __init__

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

Внутри метода __init__, вы можете определить атрибуты (характеристики) объекта, которые будут хранить информацию о состоянии объекта.

class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

В нашем примере у любого животного есть 2 общие характеристики для все. Это название и звук, который животное издает.

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

Важно отметить, что конструктор __init__ не является обязательным, но он очень полезен при работе с классами, чтобы обеспечить правильную инициализацию объектов.

Методы класса

Методы класса – это функции, которые выполняют определенные действия над объектами, созданными на основе класса. Они также определяются внутри класса. Методы принимают self в качестве первого аргумента, чтобы иметь доступ к атрибутам объекта. То есть, если вы создаете функции внутри класса, всегда ставьте первым аргуменстом self.

    def make_sound(self, sound):
        return f"{self.name} издает звук: {sound}"

Экземпляр класса

Экземпляр класса (или объект) в Python – это конкретное представление (или инстанция) класса. Это означает, что когда вы создаете экземпляр класса, вы создаете конкретный объект, который имеет свои уникальные значения атрибутов и может вызывать методы, определенные в классе.
То есть в нашем примере, когда создается экземпляр класса – вы создаете конктретное животное с его собственным именем.

Давайте создадим 2 конктреных животных, используя класс Animal:

dog = Animal("Бобик", "Собака")
cat = Animal("Мурка", "Кошка")

Каждое животное имеет своё имя и вид. Например, “Бобик” – это собака, а “Мурка” – кошка.

Методы класса

Методы – это действия, которые объекты могут выполнять.

В классе Animal есть метод make_sound. С его помощью мы можем обозначить какие звучи издает наше конктретнотное животное.

class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def make_sound(self, sound):
        return f"{self.name} издает звук: {sound}"

Теперь каждое животное может делать звуки. Например:

print(dog.make_sound("Гав-гав!"))  # Выведет "Бобик издает звук: Гав-гав!"
print(cat.make_sound("Мяу!"))  # Выведет "Мурка издает звук: Мяу!"

Родительские классы

Родительский класс (или суперкласс) в программировании относится к классу, который является базовым для других классов, называемых дочерними классами (или подклассами). Родительский класс определяет общие характеристики и методы, которые наследуются дочерними классами.

В нашем примере мы может определить Animal как родительский класс. И кошки и собаки это животные.
А такде добавить дочерние классы Dog и Cat. При этом все дочерние классы будут наследовать атрибуты и методы Animal и не жуно будет их снова прописывать.

Для более наглядного понимания, рассмотрим пример:

class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def make_sound(self, sound):
        return f"{self.name} издает звук: {sound}"

class Dog(Animal):
    def wag_tail(self):
        return f"{self.name} виляет хвостом"

class Cat(Animal):
    def purr(self):
        return f"{self.name} мурлычет"

В этом примере:

  • Animal – это родительский класс, который определяет общие характеристики и методы для всех животных.
  • Dog и Cat – это дочерние классы, которые наследуют атрибуты и методы от родительского класса Animal.

Дочерние классы (Dog и Cat) могут также иметь свои собственные методы, которые специфичны для каждого вида животных.

Итак, родительский класс – это класс, который предоставляет общие характеристики и методы, а дочерние классы могут расширять и дополнять функциональность, наследуя базовые черты от родительского класса.

Заключение

Классы в Python – это мощный инструмент, который позволяет нам организовать и структурировать код. Они позволяют создавать объекты, которые могут представлять реальные вещи и выполнять различные действия.
Теперь вы знаете, что такое классы и как их использовать!

Recent Posts

  • Excel

Как правильно открыть CSV с многострочными ячейками в Excel

Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More

% дней назад
  • Python

Загрузка проекта на Github и Автодеплой на сервер

Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More

% дней назад
  • Python
  • Полезная минутка

Миграция базы данных в проектах Python

Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More

% дней назад
  • Python

Команды Git – Шпаргалка по основным командам Git

Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More

% дней назад
  • Python

Установка PostgreSQL на сервер Ubuntu и подключение через pgAdmin

Установка PostgreSQL на сервер Read More

% дней назад
  • Полезная минутка

Как создать PrimaryKey для таблицы в PostgreSQL

Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More

% дней назад