Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

131 строка
4.9 KiB
Markdown

# Общее задание по Теме 9
## Задание
Создайте и запишите в модуль класс, содержащий следующие компоненты:
- конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;
- метод для обеспечения операции повышения оклада сотрудника на заданное значение;
- метод для обеспечения перевода сотрудника из одного отдела в другой;
- метод для изменения должности сотрудника;
- свойство, содержащее перечень (список) поощрений сотрудника.
Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобра-зите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.
## Решение
Содержание файла EMPLOYEES.py
```py
class Employee:
def __init__(self, fio="null", otdel = "null", dolz = "null", oklad = 0):
self.fio = fio
self.otdel = otdel
self.dolz = dolz
self.oklad = oklad
self.__bonus = []
def increase_oklad(self,summa):
self.oklad += summa
print(f'Оклад {self.fio} был повышен на {summa}, новый оклад равен {self.oklad}')
def move_otdel(self,new_otdel):
old_otdel = self.otdel
self.otdel = new_otdel
print(f'Сотрудник {self.fio} был переведен из {old_otdel} в {new_otdel}')
def change_dolz(self,new_dolz):
old_dolz = self.dolz
self.dolz = new_dolz
print(f'Должность сотрудника {self.fio} была изменена с {old_dolz} на {new_dolz}')
def give_bonus(self,bonus):
self.__bonus.append(bonus)
print(f'Сотруднику {self.fio} была выражена благодарность: {bonus}')
@property
def bonuses(self):
return self.__bonus.copy()
def info_out(self):
print('Информация о сотруднике:')
print(f'\n ФИО: {self.fio}')
print(f'\n Отдел: {self.otdel}')
print(f'\n Должность: {self.dolz}')
print(f'\n Оклад: {self.oklad:.2f}')
if self.__bonus:
print('Поощрения: ')
for i, poosh in enumerate(self.__bonus, 1):
print(f" {i}. {poosh}")
else:
print('no bonuses')
```
Работа модуля
```py
>>> from EMPLOYEES import Employee
>>> e1 = Employee("Иванов И.И.", "IT", "Программист", 110000)
>>> e2 = Employee("Сидоров С.Е.", "Плановый", "Эконмист", 100000)
>>> e1.info_out()
Информация о сотруднике:
ФИО: Иванов И.И.
Отдел: IT
Должность: Программист
Оклад: 110000.00
no bonuses
>>> e2.info_out()
Информация о сотруднике:
ФИО: Сидоров С.Е.
Отдел: Плановый
Должность: Эконмист
Оклад: 100000.00
no bonuses
>>> e1.increase_oklad(70000)
Оклад Иванов И.И. был повышен на 70000, новый оклад равен 180000
>>> e2.move_otdel('Логистика')
Сотрудник Сидоров С.Е. был переведен из Плановый в Логистика
>>> e2.change_dolz('Аналитик')
Должность сотрудника Сидоров С.Е. была изменена с Эконмист на Аналитик
>>> e1.give_bonus('За успешную работу в качестве лидера IT команды')
Сотруднику Иванов И.И. была выражена благодарность: За успешную работу в качестве лидера IT команды
>>> e1.info_out()
Информация о сотруднике:
ФИО: Иванов И.И.
Отдел: IT
Должность: Программист
Оклад: 180000.00
Поощрения:
1. За успешную работу в качестве лидера IT команды
>>> e2.info_out()
Информация о сотруднике:
ФИО: Сидоров С.Е.
Отдел: Логистика
Должность: Аналитик
Оклад: 100000.00
no bonuses
```