форкнуто от main/python-labs
Родитель
b5f6053beb
Сommit
4376379cfa
@ -0,0 +1,30 @@
|
|||||||
|
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)
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
# Общее контрольное задание по теме 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)
|
||||||
|
```
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче