Clases y Objetos en Python
Los estudiantes implementan clases y crean objetos en Python para aplicar los principios de la POO.
Acerca de este tema
Las clases y objetos en Python forman la base de la Programación Orientada a Objetos (POO), según los programas de SEP para Preparatoria. Los estudiantes definen clases que agrupan datos en atributos y acciones en métodos, como una clase 'Vehículo' con atributos como marca y modelo, y métodos como 'acelerar'. Luego crean objetos, instancias independientes de la clase, para simular escenarios reales y entender la reutilización de código.
Este tema, en la unidad de Desarrollo de Software y Lenguajes del II Bimestre, responde a preguntas clave: cómo encapsular datos y comportamientos, el impacto de múltiples objetos que comparten estructura pero tienen estados únicos, y diseñar clases flexibles para extensiones futuras. Fomenta habilidades de abstracción, modularidad y pensamiento computacional, esenciales para proyectos de software escalables.
El aprendizaje activo beneficia este tema porque los estudiantes codifican, instancian y modifican clases en sesiones prácticas con Python, depurando errores colaborativamente. Esto hace concretos conceptos abstractos, como la distinción entre clase y objeto, y permite experimentar con herencia básica, reforzando la comprensión mediante iteración y retroalimentación inmediata.
Preguntas Clave
- ¿Cómo se define una clase para encapsular datos y comportamientos?
- ¿Qué impacto tiene la creación de múltiples objetos de la misma clase?
- ¿Cómo podemos diseñar clases que sean flexibles y extensibles para futuros desarrollos?
Objetivos de Aprendizaje
- Diseñar una clase en Python para representar un concepto del mundo real, definiendo atributos y métodos apropiados.
- Crear múltiples objetos a partir de una clase definida, modificando sus atributos para representar estados individuales.
- Comparar el comportamiento de diferentes objetos instanciados de la misma clase, explicando las diferencias en sus estados.
- Analizar cómo la estructura de una clase puede ser extendida para incorporar nuevas funcionalidades en programas futuros.
- Implementar métodos dentro de una clase para ejecutar acciones específicas asociadas a los objetos.
Antes de Empezar
Por qué: Los estudiantes necesitan comprender los tipos de datos básicos (enteros, flotantes, cadenas, booleanos) para poder definirlos como atributos de las clases.
Por qué: La comprensión de cómo almacenar y manipular datos en variables es fundamental para entender los atributos de los objetos y cómo se les asignan valores.
Por qué: Los métodos de una clase son esencialmente funciones, por lo que los estudiantes deben estar familiarizados con la definición y el uso de funciones.
Vocabulario Clave
| Clase | Es una plantilla o molde para crear objetos. Define las propiedades (atributos) y comportamientos (métodos) que tendrán los objetos creados a partir de ella. |
| Objeto | Es una instancia específica de una clase. Cada objeto tiene sus propios valores para los atributos definidos en la clase y puede ejecutar sus métodos. |
| Atributo | Son las características o datos asociados a una clase o a un objeto. Representan el estado del objeto. |
| Método | Son las acciones o funciones que un objeto puede realizar. Están definidos dentro de la clase y operan sobre los atributos del objeto. |
| Instanciación | Es el proceso de crear un objeto a partir de una clase. Se utiliza el nombre de la clase seguido de paréntesis para generar una nueva instancia. |
Cuidado con estas ideas erróneas
Idea errónea comúnLa clase y el objeto son lo mismo.
Qué enseñar en su lugar
La clase es el molde o blueprint, mientras que el objeto es una instancia concreta con sus propios valores. Actividades en parejas donde crean múltiples objetos de una clase ayudan a visualizar esta diferencia al ver estados independientes. La depuración colaborativa refuerza que modificar un objeto no altera la clase.
Idea errónea comúnLos atributos se comparten entre todos los objetos automáticamente.
Qué enseñar en su lugar
Cada objeto tiene sus propios atributos, aunque compartan la misma estructura de clase. En simulaciones grupales de bancos, los estudiantes ven cómo transacciones en una cuenta no afectan otras. Discusiones posteriores aclaran el concepto de estado único por instancia.
Idea errónea comúnLos métodos no necesitan 'self' para acceder a atributos.
Qué enseñar en su lugar
El parámetro 'self' permite que métodos accedan y modifiquen atributos del objeto específico. Pruebas individuales con errores intencionales muestran fallos sin 'self', y correcciones en clase destacan su rol en la encapsulación.
Ideas de aprendizaje activo
Ver todas las actividadesPares Programando: Clase Estudiante
En parejas, definen una clase 'Estudiante' con atributos como nombre y calificaciones, y métodos para calcular promedio y mostrar datos. Codifican en IDLE o Jupyter, crean dos objetos y prueban interacciones. Comparten resultados con la clase al final.
Grupos Pequeños: Simulación Banco
Grupos crean clases 'Cuenta' y 'Cliente', con métodos para depositar, retirar y transferir. Instancian objetos múltiples y simulan transacciones. Discuten flexibilidad para agregar clases hijas como 'CuentaAhorro'.
Clase Completa: Galería de Objetos
Proyectan un lienzo compartido en Google Colab. Cada estudiante agrega una clase simple (ej. 'Libro'), crea objetos y ejecuta. La clase observa cómo objetos independientes interactúan sin afectar otros.
Individual: Extensión de Clase
Cada estudiante recibe una clase base 'Animal' y agrega atributos, métodos y crea tres objetos. Prueban y documentan cambios en un repositorio compartido para revisión grupal.
Conexiones con el Mundo Real
- Los desarrolladores de videojuegos utilizan clases para modelar personajes, enemigos y elementos del juego. Por ejemplo, una clase 'Enemigo' podría tener atributos como 'salud' y 'velocidad', y métodos como 'atacar()' y 'moverse()'. Cada enemigo en el juego sería un objeto distinto de esta clase.
- En el desarrollo de aplicaciones móviles, las clases se emplean para estructurar la interfaz de usuario y la lógica de negocio. Una clase 'Boton' podría tener atributos como 'texto' y 'color', y métodos como 'click()' y 'cambiarColor()', permitiendo crear múltiples botones con diferentes apariencias y funcionalidades en una app.
Ideas de Evaluación
Pida a los estudiantes que escriban en una tarjeta: 1) Una clase simple que modelaría un 'Libro' (con 2 atributos y 1 método). 2) Cómo crearían un objeto 'mi_libro' de esa clase. 3) Un ejemplo de cómo acceder a uno de sus atributos.
Presente un fragmento de código Python que define una clase simple (ej. 'Perro') y crea dos objetos de esa clase. Pregunte a los estudiantes: '¿Cuál es la diferencia entre la clase 'Perro' y los objetos 'perro1' y 'perro2'?' y '¿Cómo podrían hacer que 'perro1' ladre?'.
Inicie una discusión preguntando: 'Si diseñamos una clase 'CuentaBancaria' con atributos como 'saldo' y 'titular', ¿qué pasaría si creamos 10 objetos de esta clase para 10 clientes diferentes? ¿Compartirían el mismo saldo? ¿Por qué o por qué no?'
Preguntas frecuentes
¿Cómo definir una clase en Python para Preparatoria?
¿Qué es un objeto en POO Python?
¿Cómo el aprendizaje activo ayuda a entender clases y objetos?
¿Cómo diseñar clases flexibles en Python?
Más en Desarrollo de Software y Lenguajes
Introducción a Lenguajes de Programación
Los estudiantes exploran la evolución de los lenguajes de programación y sus paradigmas principales.
2 methodologies
Sintaxis y Semántica en Python
Los estudiantes utilizan Python para traducir lógica algorítmica en programas ejecutables, enfocándose en su sintaxis y semántica.
2 methodologies
Entornos de Desarrollo Integrado (IDE)
Los estudiantes se familiarizan con el uso de IDEs para escribir, depurar y ejecutar código de manera eficiente.
2 methodologies
Depuración y Manejo de Errores
Los estudiantes identifican y corrigen errores de sintaxis, lógica y tiempo de ejecución en el software.
2 methodologies
Manejo de Archivos y Persistencia de Datos
Los estudiantes aprenden a leer y escribir datos en archivos para la persistencia de información en sus programas.
2 methodologies
Introducción a la Programación Orientada a Objetos (POO)
Los estudiantes exploran los conceptos básicos de POO: clases, objetos, atributos y métodos.
2 methodologies