Resumen - Jerarquía de empleados
Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 22 de 64.
Desafío
DifícilEn este desafío, implementarás un sistema de jerarquía de empleados.
Deberás completar los siguientes archivos:
person.py: Implementa la clase basePersoncon name, age y un método de introducciónemployee.py: Crea la claseEmployeeque hereda dePersoncon employee_id y salarymanager.py: Implementa la claseManagerque extiende aEmployeecon gestión de departamentosengineer.py: Construye la claseEngineerque extiende aEmployeecon habilidades de programacióntechnical_manager.py: CreaTechnicalManagerutilizando herencia múltiplehierarchy_utils.py: Implementa una función de utilidad para mostrar las jerarquías de clases
Cada archivo contiene comentarios TODO detallados que te guiarán a través de la implementación.
Pruébalo tú mismo
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
# Prueba tu implementación - NO MODIFIQUES ESTE CÓDIGO DE PRUEBA
# Crear instancias
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")
# Probar métodos básicos
print(person.introduce())
print(employee.introduce())
print(f"Monthly pay: ${employee.calculate_paycheck():.2f}")
print(manager.manage_team())
print(engineer.code())
# Probar jerarquías de herencia
print("\nHierarchy demonstrations:")
show_hierarchy(TechnicalManager)
# Probar la resolución de métodos en herencia múltiple
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())Todas las lecciones de Object Oriented Programming
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancarias