Найти в Дзене

Объектно-ориентированное программирование (ООП) в Python: основы и примеры

Привет! Сегодня разберем объектно-ориентированное программирование (ООП) в Python. Если ты раньше работал только с функциями и переменными, пришло время перейти на новый уровень!
1. Что такое ООП? Объектно-ориентированное программирование — это подход, при котором программа строится на основе объектов.
Каждый объект имеет: - атрибуты (переменные, описывающие объект) - методы (функции, которые этот объект выполняет)
Пример: ООП в жизни
Представь, что ты создаешь модель машины в коде:
- У машины есть атрибуты: марка, цвет, скорость.
- У машины есть методы: ехать, тормозить, сигналить.
В ООП это записывается с помощью классов и объектов.
2. Создание класса и объекта
Создадим класс Car с атрибутами brand и color: Вывод: Объяснение:
- class Car: — создаем класс Car.
- __init__(self, brand, color): — это конструктор, который создает объект с атрибутами.
- self.brand = brand — сохраняем параметры в объекте.
- def drive(self): — метод, который "заставляет" машину

Привет! Сегодня разберем объектно-ориентированное программирование (ООП) в Python. Если ты раньше работал только с функциями и переменными, пришло время перейти на новый уровень!

1. Что такое ООП? Объектно-ориентированное программирование — это подход, при котором программа строится на основе объектов.

Каждый объект имеет: - атрибуты (переменные, описывающие объект) - методы (функции, которые этот объект выполняет)

Пример: ООП в жизни
Представь, что ты создаешь модель машины в коде:
- У машины есть
атрибуты: марка, цвет, скорость.
- У машины есть
методы: ехать, тормозить, сигналить.

В ООП это записывается с помощью
классов и объектов.

2. Создание класса и объекта
Создадим класс Car с атрибутами brand и color:

-2

Вывод:

-3

Объяснение:
- class Car: — создаем класс Car.
- __init__(self, brand, color): — это конструктор, который создает объект с атрибутами.
- self.brand = brand — сохраняем параметры в объекте.
- def drive(self): — метод, который "заставляет" машину ехать.
- my_car = Car("Toyota", "красная") — создаем объект.
- my_car.drive() — вызываем метод.

3. Наследование: создание подклассов
Допустим, у нас есть электромобиль, который тоже машина, но с дополнительной характеристикой — зарядом батареи. Вместо дублирования кода используем наследование:

-4

Вывод:

-5

Объяснение: - ElectricCar(Car) — новый класс ElectricCar наследует Car.
- super().__init__(brand, color) — вызываем конструктор родителя.
- self.battery = battery — добавляем новую характеристику.
- charge() — новый метод, специфичный для электромобилей.

4. Инкапсуляция: защита данных Иногда нужно скрыть атрибуты, чтобы их нельзя было менять напрямую. В Python для этого используют приватные переменные (начинаются с _ или `__`).

-6

Вывод:

-7

Значение __balance скрыто, его можно получить только через get_balance().

5. Полиморфизм: один интерфейс — разное поведение Допустим, у нас есть несколько видов животных, и каждое из них издает разный звук. Используем полиморфизм:

-8

-9

Вывод:

-10

Метод speak() работает по-разному для Dog и Cat, но вызывается одинаково!

Заключение
Мы разобрали:
Классы и объекты
Наследование
Инкапсуляцию
Полиморфизм


Какой раздел был самым сложным? Напиши в комментариях!