Урок 66 — Задания: Основы ООП
⚡ Кратко
Вопросы для самопроверки и две практические задачи: класс User и класс Product. Решения — в следующем разделе.
📝 Задания для закрепления (часть 1)
1. Выберите верные утверждения об объектно-ориентированном программировании
- a. Каждый объект создаётся по шаблону, называемому классом.
- b. Метод класса может использовать
selfдля доступа к данным объекта. - c. Метод — это поле объекта.
- d. ООП объединяет данные и поведение в единую структуру.
2. Что делает метод __init__?
- a. Создаёт объект
- b. Создаёт ссылку на объект
- c. Создаёт класс
- d. Создаёт поля объекта
3. Сопоставьте понятие с описанием
| Понятие | Описание |
|---|---|
| 1. класс | a. Ссылка на объект |
| 2. self | b. Всё, что доступно через точку у объекта |
| 3. атрибут | c. Функция внутри класса |
| 4. метод | d. Шаблон, по которому создаются объекты |
📝 Задания для закрепления (часть 2)
4. Сопоставьте элементы с описанием
| Элемент | Описание |
|---|---|
1. self.title = title | a. Метод класса |
2. def show_info(self): | b. Создание объекта |
3. book = Book("1984", "Orwell") | c. Доступ к полю |
4. book.title | d. Инициализация поля |
📝 Практическая работа
Задача 1. Класс User
Создайте класс User, который описывает пользователя.
- У каждого пользователя должны быть поля
username,emailи счётчик входовlogin_count. - Добавьте метод
show_info(), который выводит имя и почту пользователя. - Добавьте метод
login(), который приветствует пользователя и фиксирует новый вход. - Добавьте метод
get_logins(), возвращающий текущее количество входов. - Создайте пользователя, выполните несколько входов и выведите информацию.
Пример вывода:
------------------------------
Пользователь: alice
Почта: alice@example.com
------------------------------
alice вошёл в систему
alice вошёл в систему
Количество входов: 2
Задача 2. Класс Product
Реализуйте класс Product, который описывает товар в магазине.
- Каждый объект должен хранить название (
name) и цену (price). - Добавьте метод
apply_discount(), который уменьшает цену на заданный процент и выводит информацию о размере применённой скидки. - Добавьте метод
info(), который выводит название и текущую цену товара. - Проверьте работу класса: создайте товар, выведите его данные, примените скидку, затем снова выведите информацию.
Пример вывода:
Название: Молоко
Цена: 120
Применяем скидку 25%
Новая цена: 90.0
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Что такое класс?
Вопрос 2
Что означает self?
Вопрос 3
Какой стиль имён переменных обычно рекомендует PEP 8?
Вопрос 4
Зачем использовать f-strings в современном Python?
Вопрос 5
Когда полезен ранний возврат из функции?
Вопрос 6
Что делает аннотация типа в Python?
Вопрос 7
Как лучше обрабатывать ожидаемую ошибку преобразования?