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 bancariasPractica por tu cuenta: Compilador de Python online