📌 Задание:
Создайте класс Car с атрибутами brand и model. Создайте объект и выведите информацию о машине.
✅ Пример работы:
Марка: Toyota
Модель: Corolla
📌 Задание:
Создайте класс Book, который принимает в конструкторе title и author, и выводит сообщение при создании объекта:
Книга '1984' автора George Orwell добавлена в библиотеку
📌 Задание:
Создайте класс User с атрибутами name и age. После создания объекта измените возраст и выведите обновленные данные.
✅ Пример работы:
Имя: Alice, Возраст: 25
Возраст изменен на: 26
📌 Задание:
Создайте класс Student с атрибутами name, grade и методом info(), который выводит строку:
Студент: John, Оценка: A
📌 Задание:
Создайте класс Lamp с атрибутом is_on. Добавьте метод toggle(), который переключает состояние лампы (включено/выключено).
✅ Пример работы:
Состояние: Выключено
toggle() → Включено
📌 Задание:
Создайте класс Counter, который хранит количество созданных экземпляров. Каждый новый объект увеличивает счетчик.
✅ Пример работы:
Создано объектов: 3
📌 Задание:
Создайте класс Employee с атрибутом position, который по умолчанию равен 'Intern', если не указано иначе.
✅ Пример работы:
Имя: Bob, Должность: Intern
Имя: Alice, Должность: Manager
📌 Задание:
Создайте класс Session, который выводит сообщение "Сессия завершена" при удалении объекта (в деструкторе __del__).
✅ Пример работы:
Создание сессии
Сессия завершена
📌 Задание:
Создайте класс Rectangle с атрибутами width и height и методом area(), который возвращает площадь.
✅ Пример работы:
Площадь: 20
📌 Задание:
Создайте класс Dog с атрибутом name и методом bark(). Создайте два объекта и вызовите метод для каждого.
✅ Пример работы:
Rex: Гав!
Buddy: Гав!
📌 Задание:
Создайте класс Account с методом deposit(amount), который добавляет сумму к балансу объекта.
✅ Пример работы:
Баланс: 0
deposit(100) → Баланс: 100
📌 Задание:
Создайте класс Robot с атрибутом type = "android". Создайте несколько объектов и покажите, что у всех один и тот же тип.
✅ Пример работы:
R1.type → android
R2.type → android
📌 Задание:
Создайте класс Box с атрибутом volume. Добавьте метод compare(other), который возвращает, у какой коробки объем больше.
✅ Пример работы:
Box1 > Box2
📌 Задание:
Создайте класс BankAccount с приватным атрибутом __balance и методом get_balance(), который возвращает значение.
✅ Пример работы:
Баланс: 500
📌 Задание:
Создайте класс FileManager, который:
- принимает имя файла в конструкторе,
- имеет метод
open()(выводит "Файл открыт"), - имеет деструктор, который выводит "Файл закрыт".
✅ Пример работы:
Создание FileManager("data.txt")
Файл открыт
Файл закрыт
📌 Задание:
Создайте класс Profile с приватным атрибутом __status, который по умолчанию равен "offline".
В конструктор передается только имя пользователя.
Добавьте метод set_status(new_status) для изменения статуса и метод info() для вывода данных.
✅ Пример работы:
Имя: Alex, Статус: offline
set_status("online")
Имя: Alex, Статус: online
📌 Задание:
Создайте класс UserSession со статической переменной active = 0.
Конструктор увеличивает active, деструктор уменьшает.
Добавьте метод current() для вывода актуального числа активных сессий.
✅ Пример работы:
Активных сессий: 0
Создание 3 объектов → Активных сессий: 3
Удаление одного → Активных сессий: 2
📌 Задание:
Создайте класс Circle с приватным атрибутом __radius.
В конструкторе радиус задается, но если он меньше нуля — автоматически становиться равным 1.
Добавьте метод area() для вычисления площади.
✅ Пример работы:
Радиус: -5 → Исправлен на 1
Площадь: 3.14
📌 Задание:
Создайте класс Message с атрибутами text и priority, где priority по умолчанию "normal".
Добавьте метод update(text=None, priority=None), который изменяет только переданные параметры.
✅ Пример работы:
Message("Hello") → priority: normal
update(priority="high") → priority: high
📌 Задание:
Создайте класс Order с приватной статической переменной __count, хранящей количество созданных заказов.
Конструктор увеличивает счётчик и присваивает объекту номер заказа.
Метод info() выводит номер заказа.
Добавьте статический метод total() для вывода общего количества заказов.
✅ Пример работы:
Order #1
Order #2
Всего заказов: 2
📌 Задание:
Создайте класс Logger с атрибутом message, который в конструкторе выводит "Создан логгер".
Метод log() выводит сообщение.
Деструктор выводит "Логгер уничтожен".
✅ Пример работы:
Создан логгер
log("Ошибка") → Ошибка
Логгер уничтожен
📌 Задание:
Создайте класс Triangle с атрибутами a, b, c; по умолчанию стороны равны 1.
Добавьте приватный метод __perimeter() и публичный метод info(), который выводит периметр.
✅ Пример работы:
Стороны: 3, 4, 5
Периметр: 12
📌 Задание:
Создайте класс Config с приватным атрибутом __version = "1.0".
Добавьте статический метод version(), который выводит текущую версию.
Конструктор принимает имя конфигурации.
Метод info() выводит имя и версию.
✅ Пример работы:
Config.version() → 1.0
Config("Main").info() → Main v1.0
📌 Задание:
Создайте класс Timer с приватным атрибутом __running = False.
Метод start() устанавливает его в True, метод stop() — в False.
Деструктор выводит текущее состояние таймера.
✅ Пример работы:
start() → Таймер запущен
stop() → Таймер остановлен
Удаление объекта → Состояние: остановлен
📌 Задание:
Создайте класс Database:
- приватное статическое поле
__instances = 0, - конструктор увеличивает его и принимает
name, - приватное поле
__connected = False, - метод
connect()включает подключение, - метод
status()выводит имя базы и состояние, - статический метод
count()— количество экземпляров, - деструктор уменьшает
__instances.
✅ Пример работы:
Database.count() → 0
Создание двух БД → count() = 2
connect() → Подключено
status() → DB1: подключено
Удаление одной → count() = 1