форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
89 строки
4.4 KiB
Markdown
89 строки
4.4 KiB
Markdown
# Общее контрольное задание по теме 9
|
|
|
|
Беженарь Алёна, А-02-23
|
|
|
|
## Задание
|
|
|
|
Создайте и запишите в модуль класс, содержащий следующие компоненты:
|
|
* конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фамилии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;
|
|
* метод для обеспечения операции повышения оклада сотрудника на заданное значение;
|
|
* метод для обеспечения перевода сотрудника из одного отдела в другой;
|
|
* метод для изменения должности сотрудника;
|
|
* свойство, содержащее перечень (список) поощрений сотрудника.
|
|
|
|
Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, изменения должности и оклада, объявления благодарности.
|
|
|
|
## Решение
|
|
```py
|
|
class Employee:
|
|
def __init__(self, fio = "", otdel="", dolzhnost="",oklad=0):
|
|
self.fio=fio
|
|
self.otdel=otdel
|
|
self.dolzhnost=dolzhnost
|
|
self.oklad=oklad
|
|
self.__pooshreniya=[]
|
|
self.pooshreniya = property(
|
|
self.get_pooshreniya,
|
|
self.set_pooshreniya
|
|
)
|
|
def change_oklad(self, diff):
|
|
self.oklad += diff
|
|
def change_otdel(self, new_otdel):
|
|
self.otdel = new_otdel
|
|
def change_dolzhnost(self, new_dolzhnost):
|
|
self.dolzhnost = new_dolzhnost
|
|
def get_pooshreniya(self):
|
|
return list(self.__pooshreniya)
|
|
def set_pooshreniya(self,pooshrenie):
|
|
self.__pooshreniya.append(pooshrenie)
|
|
def get_employee_info(self):
|
|
print(f"""
|
|
ФИО: {self.fio}
|
|
Отдел: {self.otdel}
|
|
Должность: {self.dolzhnost}
|
|
Оклад: {self.oklad} руб.
|
|
Поощрения: {self.__pooshreniya}
|
|
""")
|
|
```
|
|
```py
|
|
>>> from Employee import Employee
|
|
>>> employee1 = Employee("Киреев Ю.П.", "Отдел по развлечению клиентов", "Президент клоунов", 100000)
|
|
>>> employee2 = Employee("Володин Д.В.", "Отдел инноваций", "программист БЯМов", 150000)
|
|
>>> employee1.get_employee_info() # Отображение полной информации об экземпляре класса
|
|
|
|
ФИО: Киреев Ю.П.
|
|
Отдел: Отдел по развлечению клиентов
|
|
Должность: Президент клоунов
|
|
Оклад: 100000 руб.
|
|
Поощрения: []
|
|
|
|
>>> employee2.get_employee_info()
|
|
|
|
ФИО: Володин Д.В.
|
|
Отдел: Отдел инноваций
|
|
Должность: программист БЯМов
|
|
Оклад: 150000 руб.
|
|
Поощрения: []
|
|
|
|
>>> employee1.change_otdel("Отдел по работе с клиентами") # Изменение отдела
|
|
>>> employee1.change_oklad(5000) # Изменение оклада
|
|
>>> employee2.change_oklad(-5000) # Изменение оклада
|
|
>>> employee2.change_dolzhnost("БЯМовед") # Изменение должности
|
|
>>> employee1.set_pooshreniya("Почетная грамота") # Добавление поощрения
|
|
>>> employee2.set_pooshreniya("Медаль")
|
|
>>> employee1.get_employee_info() # Отображение полной информации об экземпляре класса
|
|
|
|
ФИО: Киреев Ю.П.
|
|
Отдел: Отдел по работе с клиентами
|
|
Должность: Президент клоунов
|
|
Оклад: 105000 руб.
|
|
Поощрения: ['Почетная грамота']
|
|
|
|
>>> employee2.get_employee_info()
|
|
|
|
ФИО: Володин Д.В.
|
|
Отдел: Отдел инноваций
|
|
Должность: БЯМовед
|
|
Оклад: 145000 руб.
|
|
Поощрения: ['Медаль']
|
|
``` |