Загрузка данных
Классы и объекты 1. Создайте класс Dog с атрибутом name. Реализуйте метод bark(), который выводит «Привет! Меня зовут <имя>». 2. Напишите класс Point с атрибутами x и y. Реализуйте метод distance_to_origin(), возвращающий расстояние до начала координат. 3. Создайте класс Book с атрибутами title и author. Реализуйте метод info(), возвращающий строку с информацией о книге. 4. Реализуйте класс Circle с атрибутом radius и методом area(), вычисляющим площадь круга. 5. Напишите класс Student с атрибутами name и grade. Реализуйте метод promote(), который увеличивает grade на 1.
Инкапсуляция, атрибуты и свойства 1. Создайте класс Person с приватным атрибутом __age. Реализуйте методы get_age() и set_age(new_age). 2. Напишите класс BankAccount с приватным атрибутом __balance. Реализуйте методы deposit(amount) и withdraw(amount). 3. Используйте декоратор @property для создания свойства full_name в классе Person, который объединяет имя и фамилию. 4. Реализуйте класс Rectangle с приватными атрибутами __width и __height. Добавьте свойства для безопасного доступа к ним. 5. Создайте класс Temperature с приватным атрибутом _celsius. Реализуйте свойство fahrenheit, которое возвращает температуру в градусах Фаренгейта.
Наследование 1. Создайте базовый класс Animal с методом speak(). Реализуйте классы Dog и Cat, наследующие от Animal. 2. Напишите класс Vehicle с атрибутом speed. Реализуйте классы Car и Bike, наследующие от Vehicle. 3. Реализуйте базовый класс Shape с методом area(). Создайте классы Square и Circle, наследующие от Shape. 4. Создайте класс Employee с атрибутами name и salary. Реализуйте класс Manager, наследующий от Employee и добавляющий атрибут department. 5. Напишите класс Bird с методом fly(). Реализуйте класс Penguin, наследующий от Bird, но переопределяющий метод fly().
Переопределение функционала базового класса 1. В классе Animal реализуйте метод move(). В классах Bird и Fish переопределите этот метод. 2. Создайте класс Shape с методом area(). В классах Rectangle и Circle переопределите этот метод. 3. Реализуйте базовый класс Printer с методом print(). В классах ColorPrinter и LaserPrinter переопределите метод. 4. Напишите класс User с методом login(). В классе AdminUser переопределите метод, добавив вывод «Администратор вошёл». 5. В классе Vehicle реализуйте метод start_engine(). В классе ElectricCar переопределите метод, чтобы он выводил «Электродвигатель запущен».
Атрибуты классов и статические методы 1. Создайте класс Counter с атрибутом класса _count, который увеличивается при создании каждого объекта.
2. Напишите класс Math со статическим методом is_prime(n), проверяющим, является ли число простым.
3. Реализуйте класс User с атрибутом класса user_count, отслеживающим количество созданных пользователей.
4. Добавьте в класс Math метод класса pi(), возвращающий значение числа π.
5. Создайте класс Car со статическим методом is_valid_model(model), проверяющим, есть ли модель в списке допустимых.
Класс object. Строковое представление объекта
1. Создайте класс Book и реализуйте методы str и repr.
2. Напишите класс Point так, чтобы print(Point(3, 4)) выводило «Точка (3, 4)».
3. Реализуйте для класса User метод repr, чтобы он возвращал строку для восстановления объекта.
4. Для класса Circle реализуйте str, выводящий радиус и площадь.
5. Добавьте в класс Student метод str, возвращающий имя и курс.
Перегрузка операторов
1. Реализуйте класс Vector2D с перегрузкой оператора + для сложения векторов.
2. Перегрузите операторы сравнения < и == для класса Book по атрибуту year.
3. Для класса Vector2D реализуйте унарный оператор - (инверсия вектора).
4. Перегрузите оператор *** для класса Vector2D, чтобы он выполнял умножение на скаляр.
5. Для класса Matrix реализуйте оператор @ для умножения матриц.
Абстрактные классы и методы
1. Создайте абстрактный базовый класс Shape с абстрактным методом area(). Реализуйте классы Rectangle и Circle.
2. Напишите абстрактный класс Animal с абстрактным методом speak(). Реализуйте классы Dog и Cat.
3. Реализуйте абстрактный базовый класс Storage с абстрактными методами save(data) и load(). Создайте классы для файлового и консольного хранилища.
4. Для класса Vehicle добавьте абстрактный метод start_engine(). Реализуйте классы Car и Bike.
5. Создайте абстрактный класс Logger с абстрактным методом log(message). Реализуйте классы для логирования в файл и в консоль.