Menu
CoddyTech

Повторение: иерархия сотрудников

Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 22 из 64.

challenge icon

Задание

Сложно

В этом задании тебе предстоит реализовать систему иерархии сотрудников.

Тебе нужно завершить следующие файлы:

  • person.py: реализуй базовый класс Person с именем, возрастом и методом представления
  • employee.py: создай класс Employee, наследующий от Person, с идентификатором сотрудника и зарплатой
  • manager.py: реализуй класс Manager, расширяющий Employee, для управления отделом
  • engineer.py: создай класс Engineer, расширяющий Employee, с навыками программирования
  • technical_manager.py: создай класс TechnicalManager, используя множественное наследование
  • hierarchy_utils.py: реализуй вспомогательную функцию для отображения иерархий классов

Каждый файл содержит подробные комментарии TODO, которые помогут тебе выполнить реализацию.

Попробуйте сами

from person import Person
from employee import Employee
from manager import Manager
from engineer import Engineer
from technical_manager import TechnicalManager
from hierarchy_utils import show_hierarchy

# Проверьте свою реализацию — НЕ ИЗМЕНЯЙТЕ ЭТОТ ТЕСТОВЫЙ КОД
# Создайте экземпляры
person = Person("John Smith", 30)
employee = Employee("Alice Johnson", 35, "E12345", 60000)
manager = Manager("Bob Williams", 45, "M54321", 85000, "Marketing")
engineer = Engineer("Carol Davis", 28, "E98765", 75000, "Python")
tech_mgr = TechnicalManager("Dave Wilson", 40, "TM24680", 90000, "R&D", "Java")

# Проверьте основные методы
print(person.introduce())
print(employee.introduce())
print(f"Monthly pay: ${employee.calculate_paycheck():.2f}")
print(manager.manage_team())
print(engineer.code())

# Проверьте иерархии наследования
print("\nHierarchy demonstrations:")
show_hierarchy(TechnicalManager)

# Проверьте разрешение методов при множественном наследовании
print("\nTechnical Manager tests:")
print(tech_mgr.introduce())
print(f"Monthly pay: ${tech_mgr.calculate_paycheck():.2f}")
print(tech_mgr.manage_team())
print(tech_mgr.code())

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Python