# Общее контрольное задание по теме 9 Киреев Юрий А-02-23 ## Задание Создайте и запишите в модуль класс, содержащий следующие компоненты: - конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения; - метод для обеспечения операции повышения оклада сотрудника на заданное значение; - метод для обеспечения перевода сотрудника из одного отдела в другой; - метод для изменения должности сотрудника; - свойство, содержащее перечень (список) поощрений сотрудника. Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности. ## Решение Модуль OKZ: ```py class SOTRUDNIKI: def __init__ (self, fio="", otdel="", dolzhnost="", oklad=1): self.fio=fio self.otdel=otdel self.dolzhnost=dolzhnost self.oklad=oklad self.__reward=[] def oklad_increase (self, znach): self.oklad += znach def perevod (self, new_otdel): self.otdel = new_otdel def dolzhnost_change(self, new_dolzhnost): self.dolzhnost = new_dolzhnost def get_reward(self): return list(self.__reward) def set_reward(self,reward): self.__reward.append(reward) def __str__(self): return (f"Сотрудник: {self.fio}\n" f"Отдел: {self.otdel}\n" f"Должность: {self.dolzhnost}\n" f"Оклад: {self.oklad}\n" f"Поощрения: {self.__reward}") reward = property(get_reward, set_reward) ``` Проверка модуля: ```py >>> import OKZ >>> emp1 = OKZ.SOTRUDNIKI("Киреев Ю.П", "CЭО Сила тока", "Командир", -1000) >>> emp2 = OKZ.SOTRUDNIKI("Калякин П.А", "СЭО Сила тока", "Комиссар", 0) >>> print(emp1) Сотрудник: Киреев Ю.П Отдел: CЭО Сила тока Должность: Командир Оклад: -1000 Поощрения: [] >>> print(emp2) Сотрудник: Калякин П.А Отдел: СЭО Сила тока Должность: Комиссар Оклад: 0 Поощрения: [] >>> emp1.perevod ("СЭО База") >>> emp2.oklad_increase(5000) >>> emp1.dolzhnost_change("Кандидат") >>> emp2.set_reward("Значок лучшего бойца") >>> emp1.set_reward("Пачка кириешек") >>> print(emp1) Сотрудник: Киреев Ю.П Отдел: СЭО База Должность: Кандидат Оклад: -1000 Поощрения: ['Пачка кириешек'] >>> print(emp2) Сотрудник: Калякин П.А Отдел: СЭО Сила тока Должность: Комиссар Оклад: 5000 Поощрения: ['Значок лучшего бойца'] ```