/
vladimir_p
/
practic3_python
Обзор
Документация
Войти
/
vladimir_p
/
practic3_python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
1.py
113 строк
3 KB
Vladimir P.
upload files
26 окт 2025, 21:47
26 окт 2025, 21:47
084c9a4
Код
Авторство
О чём код?
""" This module demonstrates a class hierarchy for company employees. Classes: Employee: A base class for all employees. Manager: A subclass representing a manager. Developer: A subclass representing a developer. """ class Employee: """ A base class representing a company employee. Class Attributes: base_salary (int): The base salary rate for all employees. Attributes: name (str): The employee's name. age (int): The employee's age. gender (str): The employee's gender. """ base_salary = 1000 def __init__(self, name, age, gender): """Initializes the Employee instance.""" self.name = name self.age = age self.gender = gender class Manager(Employee): """ Represents a Manager, a subclass of Employee. Class Attributes: index (float): The coefficient for calculating a manager's salary. """ index = 1.5 def __init__(self, name, age, gender): """Initializes the Manager instance.""" super().__init__(name, age, gender) def calculate_salary(self): """ Calculates the manager's salary based on their gender. For males, the salary is `base_salary * index`. For females, an additional reduction factor of 0.7 is applied. Returns: float: The calculated salary. """ if self.gender == 'Male': return self.base_salary * self.index elif self.gender == 'Female': return self.base_salary * self.index * 0.7 class Developer(Employee): """ Represents a Developer, a subclass of Employee. Class Attributes: index (float): The coefficient for calculating a developer's salary. """ index = 1.1 def __init__(self, name, age, gender): """Initializes the Developer instance.""" super().__init__(name, age, gender) def calculate_salary(self): """ Calculates the developer's salary based on their age. If the age is between 21 and 49 (inclusive), the salary is `base_salary * index`. Otherwise, an additional reduction factor of 0.7 is applied. Returns: float: The calculated salary. """ if 20 < self.age < 50: return self.base_salary * self.index else: return self.base_salary * self.index * 0.7 if __name__ == '__main__': manager_male = Manager("John Doe", 45, "Male") manager_female = Manager("Jane Smith", 40, "Female") developer_young = Developer("Peter Jones", 30, "Male") developer_senior = Developer("Anna Karenina", 55, "Female") print( f"Salary for Manager {manager_male.name}: " f"{manager_male.calculate_salary()}" ) print( f"Salary for Manager {manager_female.name}: " f"{manager_female.calculate_salary()}" ) print( f"Salary for Developer {developer_young.name}: " f"{developer_young.calculate_salary()}" ) print( f"Salary for Developer {developer_senior.name}: " f"{developer_senior.calculate_salary()}" )