## Общее контрольное задание по теме 9 ## Задание Создайте и запишите в модуль класс, содержащий следующие компоненты: - конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения; - метод для обеспечения операции повышения оклада сотрудника на заданное значение; - метод для обеспечения перевода сотрудника из одного отдела в другой; - метод для изменения должности сотрудника; - свойство, содержащее перечень (список) поощрений сотрудника. Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобра-зите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности. ## Решение Программа записанная в модуль: ```py class Sotrudnik: def __init__(self, fio, otdel, dolzhnost, oklad): self.fio = fio self.otdel = otdel self.dolzhnost = dolzhnost self.oklad = oklad # Приватный атрибут для хранения поощрений self.__pooshchreniya = [] def __chtenie_pooshchreniy(self): return self.__pooshchreniya def __zapis_pooshchreniy(self, pooshchrenie): self.__pooshchreniya.append(pooshchrenie) def __stiran_pooshchreniy(self): self.__pooshchreniya = [] pooshchreniya = property(__chtenie_pooshchreniy, __zapis_pooshchreniy, __stiran_pooshchreniy, "Список поощрений сотрудника") def povysit_oklad(self, summa): self.oklad += summa def perevod_v_otdel(self, novyy_otdel): self.otdel = novyy_otdel def izmenit_dolzhnost(self, novaya_dolzhnost): self.dolzhnost = novaya_dolzhnost def __repr__(self): return (f"Сотрудник: {self.fio}, Отдел: {self.otdel}, " f"Должность: {self.dolzhnost}, Оклад: {self.oklad}, " f"Поощрения: {self.pooshchreniya}") # Создание экземпляров emp1 = Sotrudnik("Иванова И.И.", "Секретариат", "Разносчица бумажек", 50000) emp2 = Sotrudnik("Петрова А.С.", "Секретариат", "Приносильщица кофе", 80000) # Задание начальных поощрений emp1.pooshchreniya = "Благодарность" emp2.pooshchreniya = "Премия" emp2.pooshchreniya = "Премия 2" # Отображение начальных значений print("Начальные данные ") print(emp1) print(emp2) print("-" * 30) # Операции с экземплярами # Сотрудник 1: Повышение оклада и перевод emp1.povysit_oklad(10000) emp1.perevod_v_otdel("Генсекритариат") # Сотрудник 2: Изменение должности и объявление благодарности emp2.izmenit_dolzhnost("Старшая секретарша") emp2.pooshchreniya = "Благодарность от руководства за вкусный кофе" # Отображение измененных значений print("Измененные данные") print(emp1) print(emp2) print("-" * 30) ``` Отображение результата: ```py ================================================== RESTART: C:/Users/Лиза/OneDrive/Desktop/python-labs/TEMA9/task.py ================================================== Начальные данные Сотрудник: Иванова И.И., Отдел: Секретариат, Должность: Разносчица бумажек, Оклад: 50000, Поощрения: ['Благодарность'] Сотрудник: Петрова А.С., Отдел: Секретариат, Должность: Приносильщица кофе, Оклад: 80000, Поощрения: ['Премия', 'Премия 2'] ------------------------------ Измененные данные Сотрудник: Иванова И.И., Отдел: Генсекритариат, Должность: Разносчица бумажек, Оклад: 60000, Поощрения: ['Благодарность'] Сотрудник: Петрова А.С., Отдел: Секретариат, Должность: Старшая секретарша, Оклад: 80000, Поощрения: ['Премия', 'Премия 2', 'Благодарность от руководства за вкусный кофе'] ------------------------------ ```