Чтобы понять Классы в 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 — это мощный инструмент, который позволяет нам организовать и структурировать код. Они позволяют создавать объекты, которые могут представлять реальные вещи и выполнять различные действия.
Теперь вы знаете, что такое классы и как их использовать!

