Ir al contenido
Tecnología · 2o de Preparatoria · Desarrollo de Software y Lenguajes · II Bimestre

Clases y Objetos en Python

Los estudiantes implementan clases y crean objetos en Python para aplicar los principios de la POO.

Aprendizajes Esperados SEPSEP EMS: Programación Orientada a Objetos

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

  1. ¿Cómo se define una clase para encapsular datos y comportamientos?
  2. ¿Qué impacto tiene la creación de múltiples objetos de la misma clase?
  3. ¿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

Tipos de Datos Fundamentales en Python

Por qué: Los estudiantes necesitan comprender los tipos de datos básicos (enteros, flotantes, cadenas, booleanos) para poder definirlos como atributos de las clases.

Variables y Asignación

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.

Funciones en Python

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

ClaseEs 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.
ObjetoEs 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.
AtributoSon las características o datos asociados a una clase o a un objeto. Representan el estado del objeto.
MétodoSon las acciones o funciones que un objeto puede realizar. Están definidos dentro de la clase y operan sobre los atributos del objeto.
InstanciaciónEs 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 actividades

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

Boleto de Salida

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.

Verificación Rápida

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?'.

Pregunta para Discusión

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?
Usa 'class NombreClase:' seguido de atributos con '__init__(self, params)' y métodos con 'def metodo(self):'. Por ejemplo, class Coche: def __init__(self, color): self.color = color. Esto encapsula datos y comportamientos según SEP. Prueba creando objetos como mi_coche = Coche('rojo') para verificar.
¿Qué es un objeto en POO Python?
Un objeto es una instancia de una clase, con atributos y métodos propios. Múltiples objetos de la misma clase comparten estructura pero tienen estados independientes, como varios estudiantes con calificaciones únicas. Esto promueve reutilización y flexibilidad en diseños escalables.
¿Cómo el aprendizaje activo ayuda a entender clases y objetos?
Sesiones prácticas donde estudiantes codifican clases, crean objetos y depuran en parejas o grupos hacen abstractos los conceptos tangibles. Experimentan impactos de múltiples instancias en simulaciones reales, como bancos o vehículos, y discuten extensiones. Esto fortalece abstracción y resolución de problemas más que lecturas pasivas.
¿Cómo diseñar clases flexibles en Python?
Incluye atributos y métodos genéricos, usa 'self' para encapsulación y prepara para herencia con nombres descriptivos. En actividades grupales, extienden clases base agregando funcionalidades, evaluando reutilización. Esto alinea con estándares SEP para software mantenible.