Итоги — Иерархия сотрудников
Часть раздела Object Oriented Programming путешествия по Python на Coddy. Урок 22 из 64.
Задание
СложноВ этом испытании вы реализуете систему иерархии сотрудников.
Вам нужно будет доработать следующие файлы:
person.py: Реализуйте базовый классPersonс атрибутами name, age и методом для представленияemployee.py: Создайте классEmployee, наследующий отPerson, с атрибутами employee_id и salarymanager.py: Реализуйте классManager, расширяющийEmployee, с управлением отделом (department)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())Все уроки раздела Object Oriented Programming
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — Простой калькулятор4Наследование
Базовое наследованиеФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовИтоги — Иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy5Полиморфизм
Снова о переопределении методовУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовИтоги — Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыИтоги — Менеджер банковского счета6Инкапсуляция
Public, Protected, Private члены классаМодификаторы доступаСокрытие данныхДекораторы property: продвинутый уровеньИтоги: Система учета студентов12Проект: Управление библиотекой
Обзор проектаКлассы Book и UserСистема выдачи книгФункционал поискаИнтерфейс администратораТестирование и интеграцияПотренируйтесь самостоятельно: Онлайн-компилятор Python