Top.Mail.Ru
Ответы

Лабораторная работа №1 Конструктор и деструктор Лабораторная работа №2 Перегрузка операторов

Задание
Напишите программу по следующему описанию:
1. Создайте класс «Сотрудник», конструктор __init__() которого принимает три параметра (не учитывая self) – имя (name), фамилию (lastname) и разряд сотрудника (discharge). Разряд имеет значение, заданное по умолчанию, равное 6.
2. У класса «Сотрудник» создайте метод conclusion, позволяющий выводить строку, содержащую всю информацию о сотруднике.
3. У класса «Сотрудник» создайте деструктор __del__(), который выводит на экран фразу «Всего доброго, …» (вместо многоточия должны выводиться имя и фамилия сотрудника).
4. Создайте три объекта класса «Сотрудник»: Иван Иванов, имеющий 3 разряд; Петр Петров, имеющий 5 разряд; Петр Сидоров, имеющий 2 разряд.
5. Применяя деструктор, а также условные операторы, попрощайтесь с сотрудником, имеющим минимальное значение разряда.

Задание
1. Создайте класс «snowflakes», в конструкторе класса инициируйте поле, содержащее количество снежинок «number_of_snowflakes».
2. В классе пропишите следующие методы перегрузки арифметических операторов:
1) __add__() – сложение;
2) __ sub __() – вычитание;
3) __ mul __() – умножение;
4) __ truediv__() – деление (деление «/», при этом необходимо организовать округление значения до целого числа);
5) __ floordiv__() – деление (целочисленное деление «//»);
6) __ mod __ () – остаток от деления (%).
3. Создайте объект класса «snowflakes» – A;
4. Применяя функцию «print», проверьте работоспособность перегрузки операторов.

Мой код: (не получается его запустить, self. name, с пробеолм т.к. mail считает ссылкой)
class Person:
def _init_(self, n, s, q=1):
self. name = n
self.surname = s
self.skill =q

def _del_(self):
print("Всего доброго", self. name, self.surname)

def info(self):
return "{} {}, {}".format(self. name, self.surname, self.skill)
worker = Person("И", "Иванов", 3)
helper = Person("П", "Петров", 5)
maker = Person("П", "Сидоров", 2)
print(worker.info())
print(helper.info())
print(maker.info())
del helper
print("Конец программы")
input()

По дате
По Рейтингу
Аватар пользователя

1

12345678910111213141516171819202122232425262728
 class Employee: 
    def __init__(self, name, lastname, discharge=6): 
        self.name = name 
        self.lastname = lastname 
        self.discharge = discharge 
 
    def __del__(self): 
        print(f"Всего доброго, {self.name} {self.lastname}") 
 
    def conclusion(self): 
        print(f"Имя: {self.name}, Фамилия: {self.lastname}, Разряд: {self.discharge}") 
 
ivan = Employee("Иван", "Иванов", 3) 
petr = Employee("Петр", "Петров", 5) 
sidor = Employee("Петр", "Сидоров", 2) 
 
employees = [ivan, petr, sidor] 
min_discharge_employee = min(employees, key=lambda x: x.discharge) 
 
for employee in employees: 
    employee.conclusion() 
    if employee == min_discharge_employee: 
        print(f"Прощайте, {employee.name} {employee.lastname} с минимальным разрядом {employee.discharge}") 
        del employee 
    else: 
        print(f"До свидания, {employee.name} {employee.lastname}") 
 
 

2

1234567891011121314151617181920212223242526272829303132333435
 class Snowflakes: 
    def __init__(self, number_of_snowflakes): 
        self.number_of_snowflakes = number_of_snowflakes 
 
    def __add__(self, other): 
        return Snowflakes(self.number_of_snowflakes + other.number_of_snowflakes) 
 
    def __sub__(self, other): 
        return Snowflakes(self.number_of_snowflakes - other.number_of_snowflakes) 
 
    def __mul__(self, other): 
        return Snowflakes(self.number_of_snowflakes * other.number_of_snowflakes) 
 
    def __truediv__(self, other): 
        return Snowflakes(round(self.number_of_snowflakes / other.number_of_snowflakes)) 
 
    def __floordiv__(self, other): 
        return Snowflakes(self.number_of_snowflakes // other.number_of_snowflakes) 
 
    def __mod__(self, other): 
        return Snowflakes(self.number_of_snowflakes % other.number_of_snowflakes) 
 
    def __str__(self): 
        return f"Number of snowflakes: {self.number_of_snowflakes}" 
 
A = Snowflakes(10) 
B = Snowflakes(5) 
 
print(A + B) 
print(A - B) 
print(A * B) 
print(A / B) 
print(A // B) 
print(A % B)