Чтобы понять Классы в Python – давайте начнем с понимания сущностей. Сущности – это слово, которое используется, чтобы описать что-то, что существует или является реальным объектом, и может быть названо и описано. В простых словах, сущности – это вещи, которые можно увидеть, потрогать или описать.
Мы все с Вами знаем, что есть веши кокретные: моя собака Лакки, а есть вещи абстрактные: животные, собаки.
В программировании для определения и работы с сущностями существуют классы. Классы позволяют абстрагировать реальные объекты и описывать их характеристики и действия.
Классы в программировании – это специальные инструменты, которые помогают нам описывать сущности и их свойства. Классы позволяют нам определить, какие атрибуты (свойства) имеет сущность, и какие действия она может выполнять.
Также справедливым будет добавить что:
- Переменные – это обычно конкретные сущности или объекты, которые хранят определенные данные. Например, переменная
ageможет хранить конкретное значение возраста, а переменнаяnameможет хранить конкретное имя. Переменные представляют конкретные значения. - Классы – это более абстрактные сущности, которые определяют структуру и поведение объектов. Они служат как шаблоны для создания конкретных объектов (экземпляров класса). Например, класс “Животное” определяет, что объекты этого класса будут иметь атрибуты, такие как имя и вид, и методы, такие как “делать звук”. Классы описывают общие характеристики и действия для множества объектов.
Таким образом, переменные представляют конкретные данные, в то время как классы представляют абстрактные структуры для создания объектов. Классы позволяют организовать и абстрагировать код, делая его более гибким и повторно используемым.
Классы – это своего рода шаблон для создания объектов.
Рассмотрим все на конктретном примере.
Классы в Python. Пример класса – Животные
Давайте рассмотрим пример класса на понятном примере – животных.
1 2 3 4 5 6 7 | 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__, вы можете определить атрибуты (характеристики) объекта, которые будут хранить информацию о состоянии объекта.
1 2 3 4 | class Animal: def __init__(self, name, species): self.name = name self.species = species |
В нашем примере у любого животного есть 2 общие характеристики для все. Это название и звук, который животное издает.
Конструктор позволяет задать начальное состояние объекта и, таким образом, облегчает создание экземпляров класса с определенными значениями атрибутов.
Важно отметить, что конструктор __init__ не является обязательным, но он очень полезен при работе с классами, чтобы обеспечить правильную инициализацию объектов.
Методы класса
Методы класса – это функции, которые выполняют определенные действия над объектами, созданными на основе класса. Они также определяются внутри класса. Методы принимают self в качестве первого аргумента, чтобы иметь доступ к атрибутам объекта. То есть, если вы создаете функции внутри класса, всегда ставьте первым аргуменстом self.
1 2 | def make_sound(self, sound): return f"{self.name} издает звук: {sound}" |
Экземпляр класса
Экземпляр класса (или объект) в Python – это конкретное представление (или инстанция) класса. Это означает, что когда вы создаете экземпляр класса, вы создаете конкретный объект, который имеет свои уникальные значения атрибутов и может вызывать методы, определенные в классе.
То есть в нашем примере, когда создается экземпляр класса – вы создаете конктретное животное с его собственным именем.
Давайте создадим 2 конктреных животных, используя класс Animal:
1 2 | dog = Animal("Бобик", "Собака") cat = Animal("Мурка", "Кошка") |
Каждое животное имеет своё имя и вид. Например, “Бобик” – это собака, а “Мурка” – кошка.
Методы класса
Методы – это действия, которые объекты могут выполнять.
В классе Animal есть метод make_sound. С его помощью мы можем обозначить какие звучи издает наше конктретнотное животное.
1 2 3 4 5 6 7 | class Animal: def __init__(self, name, species): self.name = name self.species = species def make_sound(self, sound): return f"{self.name} издает звук: {sound}" |
Теперь каждое животное может делать звуки. Например:
1 2 | print(dog.make_sound("Гав-гав!")) # Выведет "Бобик издает звук: Гав-гав!" print(cat.make_sound("Мяу!")) # Выведет "Мурка издает звук: Мяу!" |
Родительские классы
Родительский класс (или суперкласс) в программировании относится к классу, который является базовым для других классов, называемых дочерними классами (или подклассами). Родительский класс определяет общие характеристики и методы, которые наследуются дочерними классами.
В нашем примере мы может определить Animal как родительский класс. И кошки и собаки это животные.
А такде добавить дочерние классы Dog и Cat. При этом все дочерние классы будут наследовать атрибуты и методы Animal и не жуно будет их снова прописывать.
Для более наглядного понимания, рассмотрим пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 – это мощный инструмент, который позволяет нам организовать и структурировать код. Они позволяют создавать объекты, которые могут представлять реальные вещи и выполнять различные действия.
Теперь вы знаете, что такое классы и как их использовать!
