Итоги — Иерархия сотрудников
Часть раздела 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