форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
55 строки
1.9 KiB
Python
55 строки
1.9 KiB
Python
|
|
class Employee:
|
|
def __init__(self, fio="Unknown", otdel="Not specified",
|
|
dolzhnost="Not specified", oklad=0):
|
|
self.fio = fio
|
|
self.otdel = otdel
|
|
self.dolzhnost = dolzhnost
|
|
self.oklad = oklad
|
|
self._poosherenia = []
|
|
|
|
def increase_oklad(self, amount):
|
|
if amount < 0:
|
|
print(f"Error: amount cannot be negative ({amount})")
|
|
return self.oklad
|
|
else:
|
|
old_oklad = self.oklad
|
|
self.oklad += amount
|
|
print(f"{self.fio}: salary increased by {amount:,} rub. "
|
|
f"({old_oklad:,} → {self.oklad:,} rub.)")
|
|
return self.oklad
|
|
|
|
def change_department(self, new_department):
|
|
old_department = self.otdel
|
|
self.otdel = new_department
|
|
print(f"Employee {self.fio} transferred from {old_department} to {new_department}.")
|
|
|
|
def change_position(self, new_position):
|
|
old_position = self.dolzhnost
|
|
self.dolzhnost = new_position
|
|
print(f"Employee {self.fio} position changed from {old_position} to {new_position}.")
|
|
|
|
@property
|
|
def poosherenia(self):
|
|
return self._poosherenia.copy()
|
|
|
|
def add_poosherenia(self, text):
|
|
"""Adds a new commendation"""
|
|
self._poosherenia.append(text)
|
|
print(f"{self.fio}: added commendation: '{text}'")
|
|
|
|
def show_info(self):
|
|
"""Shows employee information"""
|
|
print(f"\n{'='*40}")
|
|
print(f"EMPLOYEE: {self.fio}") # ← английское имя!
|
|
print(f"Department: {self.otdel}") # ← английское имя!
|
|
print(f"Position: {self.dolzhnost}") # ← английское имя!
|
|
print(f"Salary: {self.oklad} rub.")
|
|
if self._poosherenia:
|
|
print("Commendations:")
|
|
for item in self._poosherenia:
|
|
print(f" • {item}")
|
|
else:
|
|
print("No commendations")
|
|
print(f"{'='*40}")
|