Объектно-ориентированное программирование на Python (ООП) - Для Начинающих

YOUTUBE · 28.11.2025 06:53

Ключевые темы и таймкоды

Введение в объектно-ориентированное программирование на Python

0:00
  • Видео предназначено для начинающих и тех, кто хочет освежить знания.
  • Объектно-ориентированное программирование не является чем-то новым для Python.
  • Объекты постоянно используются в коде Python, но часто маскируются.

Понятие объектов и типов данных

0:59
  • Объекты в Python часто замаскированы, но они важны.
  • Пример: строка "привет" является объектом класса string.
  • Разные типы данных, такие как string и int, являются частью одного класса.

Создание и использование объектов

1:58
  • Все, с чем мы работаем в Python, является объектом какого-то класса.
  • Встроенные типы данных встроены в язык Python.
  • Создание объектов определяет способ взаимодействия с другими объектами.

Ошибки типов и их значение

2:55
  • Пример ошибки: попытка добавить int и строку вызывает ошибку типа.
  • Тип определяет, что можно делать с переменной или объектом.
  • Изменение типа объекта позволяет выполнять операции, определенные для этого типа.

Методы и их применение

3:55
  • Методы - это действия, которые можно применять к объектам.
  • Пример: метод print для строки.
  • Методы помогают взаимодействовать с объектами и выполнять определенные действия.

Методы и объекты

4:45
  • Методы в Python пишутся в верхнем регистре и воздействуют на объекты.
  • Пример: метод upper для строки.
  • Методы доступны только для объектов определенного типа.

Создание собственных классов

5:39
  • Создание класса с именем "dog" и определение метода "bark".
  • Метод "bark" печатает "bark".
  • Методы начинаются с параметра self, который указывает на текущий объект.

Экземпляры классов

6:38
  • Создание экземпляра класса "dog" с переменной "d".
  • Экземпляр "d" является объектом типа "dog".
  • Методы класса "dog" могут выполняться для экземпляров этого класса.

Методы и аргументы

8:37
  • Методы могут возвращать значения и принимать аргументы.
  • Пример метода "add_one" для добавления единицы к аргументу.
  • Методы могут быть вызваны с передачей аргументов.

Метод инициализации

10:00
  • Метод __init__ вызывается при создании экземпляра класса.
  • Пример передачи имени при создании экземпляра "dog".
  • Атрибуты класса позволяют сохранять и получать доступ к данным.

Атрибуты и методы

11:52
  • Атрибут name сохраняется для каждого экземпляра "dog".
  • Пример печати имени "Тим" и "Билл".
  • Методы могут ссылаться на атрибуты через self.

Получение атрибутов

13:34
  • Метод get_name возвращает значение атрибута name.
  • Пример вызова метода для получения имени "Тим" и "Билл".
  • Возможность создания других атрибутов, таких как возраст.

Инициализация и атрибуты собак

14:21
  • Определение имени и возраста для собак при инициализации.
  • Пример создания объектов "Тим" и "Билл".
  • Ошибка при отсутствии параметра self в методе.

Методы и атрибуты

15:02
  • Важность параметра self в методах.
  • Создание методов для изменения и создания атрибутов.
  • Пример изменения возраста собаки.

Преимущества объектно-ориентированного программирования

16:21
  • Возможность создания множества экземпляров одного класса.
  • Пример с собаками и необходимость использования объектов.
  • Проблемы с использованием списков для хранения данных.

Пример с учениками и курсами

19:14
  • Создание класса "Student" с атрибутами имя, возраст, оценка.
  • Определение методов для работы с оценками.
  • Создание класса "Course" с атрибутами название курса и максимальное количество студентов.

Добавление студентов на курс

21:43
  • Создание метода для добавления студентов на курс.
  • Использование списка для хранения студентов.
  • Пример добавления студента в список курса.

Добавление студентов в класс

23:16
  • Добавление студентов возможно только при условии, что их количество меньше максимального.
  • Метод возвращает true при успешном добавлении и false при неудачном.
  • Пример добавления студентов с именами Тим, Билл и Джилл.

Создание курса и добавление студентов

24:02
  • Создание курса с названием и максимальным количеством студентов.
  • Добавление студентов в курс с помощью метода.
  • Проверка работы кода и вывод информации о студентах.

Получение средней оценки

25:48
  • Метод для получения средней оценки всех студентов курса.
  • Использование метода для получения оценок студентов.
  • Пример расчета средней оценки и вывод результата.

Наследование классов

28:26
  • Объяснение наследования и его преимуществ.
  • Пример создания классов Dog и Cat с общими атрибутами.
  • Определение класса Pet как общего предка для Dog и Cat.

Пример использования наследования

30:23
  • Создание класса Pet с методами инициализации и show.
  • Наследование классов Dog и Cat от класса Pet.
  • Пример создания экземпляров классов Pet, Dog и Cat и их инициализации.

Введение в наследование

33:03
  • Объяснение, как работает наследование в Python.
  • Пример с кошкой и собакой, где методы "говори" определяются по-разному для каждого класса.
  • Использование метода "говори" в дочерних классах.

Переопределение методов

34:01
  • Объяснение, что методы в дочерних классах переопределяют методы в родительских классах.
  • Пример создания нового класса "рыба" и его инициализации.
  • Проблема с использованием метода "говори" без его определения в дочернем классе.

Инициализация и наследование

34:58
  • Важность вызова метода инициализации родительского класса.
  • Пример с веб-приложением, где инициализация может запрашивать данные из базы данных.
  • Использование super для вызова метода инициализации родительского класса.

Определение атрибутов

36:56
  • Объяснение, почему не стоит просто копировать атрибуты из родительского класса.
  • Пример с вызовом метода инициализации для настройки объекта.
  • Использование self и super для вызова методов инициализации.

Изменение метода show

37:56
  • Пример изменения метода show для объекта cat.
  • Добавление атрибутов name, age и color в метод show.
  • Запуск программы для проверки изменений.

Введение в наследование

38:33
  • Объяснение, как работает наследование в Python.
  • Важность вызова метода инициализации родительского класса.
  • Пример с классом "pet" и его инициализацией.

Примеры наследования

39:30
  • Использование наследования для создания общих классов.
  • Пример с иерархией людей в организации.
  • Создание общего класса "person" и дочерних классов "employee" и "manager".

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

41:15
  • Атрибуты класса, которые относятся к самому классу, а не к экземпляру.
  • Пример с атрибутом "number_of_people" в классе "person".
  • Возможность изменения атрибута класса через имя класса.

Применение атрибутов класса

42:57
  • Изменение значения атрибута класса через имя класса.
  • Пример с отслеживанием количества экземпляров класса "person".
  • Использование атрибутов класса для отслеживания и управления экземплярами.

Определение констант как атрибутов класса

44:27
  • Константы, такие как сила тяжести, можно определить как атрибуты класса.
  • Это позволяет использовать константу в разных файлах без необходимости изменять её значение.
  • Классы можно экспортировать, что делает их независимыми от других файлов.

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

45:23
  • Методы класса определяются иначе, чем обычные методы.
  • Они не зависят от конкретного экземпляра и действуют на сам класс.
  • Пример: метод для увеличения количества людей в классе.

Использование методов класса

47:14
  • Методы класса обозначаются как @classmethod.
  • Они могут быть вызваны без доступа к экземпляру класса.
  • Пример: добавление человека в класс с использованием метода класса.

Статические методы

49:05
  • Статические методы не изменяют состояние класса и могут быть вызваны без создания экземпляра.
  • Они используются для организации функций в классы для удобства использования.
  • Пример: создание класса "математика" с методами для математических операций.

Применение статических методов

50:05
  • Статические методы остаются неизменными и не требуют доступа к экземпляру.
  • Они могут быть вызваны без создания экземпляра класса.
  • Пример: использование статического метода для добавления пяти к числу.

Заключение

52:00
  • Все в Python является объектом, включая функции, строки и целые числа.
  • Объекты являются экземплярами классов, которые определяют их свойства и поведение.
  • Классы и типы объектов важны для их поведения.
  • Видео завершается призывом подписаться на канал и оставить комментарии.