# Общее контрольное задание по теме 9 Мамакин Ярослав, А-02-23 ## Задание Создайте и запишите в модуль класс, содержащий следующие компоненты: - конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения; - метод для обеспечения операции повышения оклада сотрудника на заданное значение; - метод для обеспечения перевода сотрудника из одного отдела в другой; - метод для изменения должности сотрудника; - свойство, содержащее перечень (список) поощрений сотрудника. Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобрази-те эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изме-нения должности и оклада, объявления благодарности. ## Решение Содержимое модуля: ```py class Employee: def __init__(self, fio, otdel, dolzhnost, oklad): self.fio = fio self.otdel = otdel self.dolzhnost = dolzhnost self.oklad = oklad self.bonus = [] def give_raise(self, amount): print(f'Оклад повышен на {amount} рублей, новый оклад: {self.oklad + amount}') self.oklad = self.oklad + amount def transfer(self, new_otdel): self.otdel = new_otdel def position(self, new_position): self.dolzhnost = new_position def give_bonus(self, bonus): self.bonus.append(bonus) def read_bonus(self): return self.bonus def remove_bonus(self): if len(self.bonus) != 0: return self.bonus.pop() return None svojstvo = property(read_bonus, give_bonus, remove_bonus) ``` Проверка работы: ```py >>> import EMP >>> de = EMP.Employee('Дерипаска Олег Владимирович', 'Маркетинг', 'Аналитик', 130000) >>> ya = EMP.Employee('Мамакин Ярослав Романович', 'Производственный', 'Арбузолитейщик', 131000) >>> ya.dolzhnost 'Арбузолитейщик' >>> de.svojstvo = 'Премного благодарны' >>> de.svojstvo = 'Вы лучший' >>> de.svojstvo ['Премного благодарны', 'Вы лучший'] >>> de.transfer('Клининговый') >>> de.otdel 'Клининговый' >>> ya.give_raise(70000) Оклад повышен на 70000 рублей, новый оклад: 201000 ```