¿Qué temas se cubrirán en el curso?
Conceptos básicos de OOP en Python
Introducción:
Visión General del Curso y Objetivos
Importancia de la Programación Orientada a Objetos en Python
Prerrequisitos y Cómo Empezar
Clases y Objetos:
Definiendo clases y objetos en Python
Entendiendo los atributos de clase y los atributos de instancia
Implementando constructores (__init__) para inicializar objetos
Creando y manipulando objetos
Atributos y Métodos:
Trabajando con métodos de instancia y métodos de clase
Entendiendo la sobrecarga y redefinición de métodos
Implementando métodos estáticos
Encapsulando datos usando atributos privados y protegidos
Herencia:
Creando y usando subclases en Python
Implementando herencia para reutilizar código
Entendiendo el orden de resolución de métodos (MRO)
Usando super() para acceder a métodos de la superclase
Encapsulación:
A medida que nos acercamos al final de nuestro viaje, nos centramos en la encapsulación, un concepto crucial en la programación orientada a objetos.
Explorando modificadores de acceso como public, private y protected
Entendiendo cómo los modificadores de acceso restringen el acceso a los miembros de la clase
Implementando la encapsulación para proteger los datos dentro de las clases
Polimorfismo:
Entendiendo el polimorfismo y sus tipos
Implementando la sobrecarga de métodos y la sobrecarga de operadores
Usando el polimorfismo para escribir código flexible y reutilizable
Métodos Especiales (Métodos Mágicos):
Explorando métodos especiales como __str__, __repr__, __len__, __add__
Entendiendo el propósito y uso de los métodos especiales
Implementando comportamiento personalizado usando métodos especiales
Abstracción e Interfaces:
Entendiendo clases abstractas y métodos abstractos
Usando el módulo ABC (Abstract Base Classes) para abstracción
Implementando interfaces y adhiriéndose al contrato
Composición y Agregación:
Entendiendo la composición y agregación
Construyendo objetos complejos usando composición
Implementando agregación para modelar relaciones
Propiedades y Decoradores:
Implementando métodos getter y setter
Entendiendo decoradores de propiedad (@property, @setter, @deleter)
Usando propiedades para encapsular atributos
Herencia Múltiple:
Entendiendo la herencia múltiple y sus trampas
Usando herencia múltiple para combinar características de múltiples clases
Gestionando el orden de resolución de métodos (MRO) en la herencia múltiple
Orden de Resolución de Métodos (MRO):
Orden de Resolución de Métodos (MRO), un aspecto crucial de la herencia en Python.
Entendiendo cómo Python determina el orden en el que se resuelven los métodos
Usando super() para navegar el Orden de Resolución de Métodos
Duck Typing:
Entendiendo el concepto de Duck Typing
Implementando Duck Typing para escribir código flexible
Utilizando Duck Typing para trabajar con diferentes tipos de objetos
Ocultamiento de Datos:
Entendiendo la encapsulación y el ocultamiento de datos
Usando la encapsulación para restringir el acceso a los datos
Implementando atributos y métodos privados
Composición sobre Herencia:
Entendiendo el principio de composición sobre herencia
Identificando escenarios donde la composición es preferible
Construyendo código flexible y mantenible usando composición
Reflexiones Finales sobre la Programación Orientada a Objetos en Python:
Reflexionando sobre el Viaje de Aprendizaje de la Programación Orientada a Objetos en Python
Agradecimientos y Próximos Pasos