Найти в Дзене
Python Pro🐍

Что такое ООП? Объясняем на "котиках" 🐱

Привет! Если вы только начинаете свой путь в программировании, то наверняка слышали про загадочную аббревиатуру ООП — Объектно-ориентированное программирование. Звучит сложно, но на самом деле это просто способ организовать код так, чтобы он был похож на реальный мир. Давайте забудем о сложных терминах и представим, что мы создаём программу для приюта кошек. Представьте, что у нас есть чертёж кошки. На нём написано, что у кошки есть имя, возраст и она умеет мяукать. Этот чертёж — это и есть класс. Класс не является настоящей кошкой, это просто инструкция по её созданию. В Python мы бы написали это так: class Cat:
def __init__(self, name, age):
self.name = name
self.age = age
def meow(self):
print(f"{self.name} говорит: Мяу!") Теперь, когда у нас есть чертёж, мы можем создавать сколько угодно реальных кошек по этому чертежу. Каждая такая кошка называется объектом. У каждого объекта будут свои уникальные черты. Создадим двух кошек: cat1 = Cat("Мурзик", 3)
Оглавление

Привет! Если вы только начинаете свой путь в программировании, то наверняка слышали про загадочную аббревиатуру ООПОбъектно-ориентированное программирование. Звучит сложно, но на самом деле это просто способ организовать код так, чтобы он был похож на реальный мир.

Давайте забудем о сложных терминах и представим, что мы создаём программу для приюта кошек.

Классы: это как "чертёж" кошки

Представьте, что у нас есть чертёж кошки. На нём написано, что у кошки есть имя, возраст и она умеет мяукать. Этот чертёж — это и есть класс. Класс не является настоящей кошкой, это просто инструкция по её созданию. В Python мы бы написали это так:

class Cat:
def __init__(self, name, age):
self.name = name
self.age = age

def meow(self):
print(f"{self.name} говорит: Мяу!")
  • class Cat: — мы говорим Python, что создаём новый класс под названием Cat.
  • __init__ — это специальная функция, которая срабатывает, когда мы создаём новую кошку. Она как бы "заполняет" чертёж, давая кошке имя и возраст.
  • self — это обращение к самой кошке. Например, self.name = name означает "имя этой кошки равно тому имени, которое мы ей дали".
  • meow(self) — это метод, то есть действие, которое наша кошка умеет делать.

Объекты: это уже "настоящие кошки"

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

Создадим двух кошек:

cat1 = Cat("Мурзик", 3)
cat2 = Cat("Барсик", 5)

print(cat1.name)
# Вывод: Мурзик

print(cat2.age)
# Вывод: 5

Здесь cat1 и cat2 — это наши объекты. Они созданы по одному чертежу (классу Cat), но у них разные данные (имена и возраст).

Теперь давайте заставим наших кошек мяукать.

cat1.meow()
# Вывод: Мурзик говорит: Мяу!

cat2.meow()
# Вывод: Барсик говорит: Мяу!

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

Зачем всё это нужно?

ООП помогает нам писать более понятный и структурированный код, который легко изменять.

  • Порядок: Вместо того чтобы писать сотни отдельных функций, мы объединяем связанные данные (имя, возраст) и действия (мяукать) в один "ящик" — класс.
  • Повторное использование: Если нам понадобится создать ещё 100 кошек, нам не придётся писать код заново. Мы просто будем использовать уже готовый чертёж.
  • Удобство: Код становится похожим на то, как мы мыслим. Мы работаем с "кошками", а не с набором разрозненных переменных и функций.

Теперь, когда вы видите слова "класс" и "объект", вы будете знать, что это не что-то страшное, а просто способ организовать код, чтобы он был логичным и понятным, как реальный мир!