Repaso: jerarquía de empleados
Parte de la sección Programación orientada a objetos 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.
Tendrás que completar los siguientes archivos:
person.py: Implementa la clase basePersoncon nombre, edad y un método de presentaciónemployee.py: Crea la claseEmployee, que hereda dePerson, con employee_id y salariomanager.py: Implementa la claseManager, que extiendeEmployee, con gestión de departamentoengineer.py: Crea la claseEngineer, que extiendeEmployee, con habilidades de programacióntechnical_manager.py: CreaTechnicalManagermediante herencia múltiplehierarchy_utils.py: Implementa una función auxiliar para mostrar jerarquías de clases
Cada archivo contiene comentarios TODO detallados que te guiarán en 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
# Crea 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")
# Prueba los 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())
# Prueba las jerarquías de herencia
print("\nHierarchy demonstrations:")
show_hierarchy(TechnicalManager)
# Prueba la resolución de métodos en la 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 Programación orientada a objetos
1Fundamentos de la POO
Introducción a la POOArchivos externosClases vs. objetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Repaso: calculadora sencilla4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosRepaso: 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 de propiedadDecorador de método estáticoDecorador de método de clase5Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas8Conceptos avanzados de POO
Composición frente a 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. variables de claseDecoradores de propiedadesAtributos privadosRepaso: gestor de cuentas bancariasPractica por tu cuenta: Compilador de Python online