задание по Python. СРОЧНО
Создайте класс числа Numbers, который дает информацию, кратно ли данное число 2, 3 и 4. Вывести информацию о кратности объекта числам 2, 3 и 4 в виде таблицы. Создать методы сравнения двух объектов-чисел, используя магические методы для логических операций. Решить задачу с подробными комментариями(важно).
Напишите:
атрибуты (статические и динамические),
методы,
принципы ООП, которые вы использовали при разработке программы (абстракция, инкапсуляция, полиморфизм, наследование),
уровни доступа к атрибутам и методам (public, protected, private) .
Ответы
Класс Numbers:
python
Copy code
class Numbers:
def __init__(self, number):
self.number = number
@property
def is_multiple_of_two(self):
return self.number % 2 == 0
@property
def is_multiple_of_three(self):
return self.number % 3 == 0
@property
def is_multiple_of_four(self):
return self.number % 4 == 0
def __eq__(self, other):
return self.number == other.number
def __ne__(self, other):
return self.number != other.number
def __lt__(self, other):
return self.number < other.number
def __le__(self, other):
return self.number <= other.number
def __gt__(self, other):
return self.number > other.number
def __ge__(self, other):
return self.number >= other.number
Атрибуты:
number - динамический атрибут, представляющий число.
Методы:
is_multiple_of_two - метод, проверяющий, является ли число кратным двум;
is_multiple_of_three - метод, проверяющий, является ли число кратным трем;
is_multiple_of_four - метод, проверяющий, является ли число кратным четырем;
eq - магический метод, определяющий равенство двух чисел;
ne - магический метод, определяющий неравенство двух чисел;
lt - магический метод, определяющий меньше ли одно число, чем другое;
le - магический метод, определяющий меньше или равно ли одно число, чем другое;
gt - магический метод, определяющий больше ли одно число, чем другое;
ge - магический метод, определяющий больше или равно ли одно число, чем другое.
Принципы ООП:
Абстракция - класс Numbers абстрагирует понятие числа и предоставляет доступ к его характеристикам;
Инкапсуляция - атрибуты класса Numbers являются скрытыми от внешнего мира, но предоставляются через методы;
Полиморфизм - магические методы позволяют использовать стандартные операторы с объектами класса Numbers;
Наследование - класс Numbers не наследуется от других классов.
Уровни доступа:
Динамический атрибут number является public и доступен для чтения и записи извне;
Методы is_multiple_of_two, is_multiple_of_three, is_multiple_of_four являются public и могут быть вызваны извне;
Магические методы имеют доступ к динамическим атрибутам и методам класса, но не предназ