La programación con Python te ofrece muchas posibilidades que van más allá de simples scripts. Un componente central en la programación orientada a objetos es trabajar con clases. Son la base para los objetos y te permiten crear y gestionar estructuras de datos complejas. En esta guía aprenderás a definir tus propias clases en Python para utilizar sus propiedades y métodos de manera efectiva.
Principales hallazgos
- Las clases son la clave para la programación orientada a objetos en Python.
- Un inicializador (constructor) te permite definir propiedades específicas al crear una clase.
- Los métodos en las clases te permiten encapsular funciones que operan sobre las propiedades de un objeto.
- El acceso a las propiedades se realiza a través del operador punto.
Guía paso a paso
Comencemos con los fundamentos de la construcción de clases en Python. Primero, debes definir una nueva clase con la palabra clave class. Puedes hacerlo en tu código Python de la siguiente manera:

Aquí tenemos una clase vacía llamada Empleado. Puedes definirla inicialmente sin parámetros, lo que significa que la clase se crea sin inicialización específica. Esta es una base importante para asegurarte de que no recibirás errores al crear objetos más adelante.
Ahora crea un objeto de esta clase. Para ello, basta con usar el nombre de la clase y poner un paréntesis vacío:
En este caso, hemos creado un objeto Empleado. El siguiente paso es ampliar la clase con propiedades. Por ejemplo, podrías agregar un nombre a la clase Empleado.
Primero, necesitas definir un inicializador que actúe como el constructor de tu clase. Esto se hace a través del método __init__.

Aquí puedes ver cómo se define un constructor __init__. Pasamos el nombre como parámetro y utilizamos self para almacenar el nombre del objeto actual.
Ahora que tienes una propiedad, puedes pasar un nombre directamente al crear un objeto:

Cuando ahora creas el objeto participante con el nombre "Jan", el nombre se almacena en la instancia. A través del autocompletado puedes verificar si el nombre se ha establecido correctamente.
Para utilizar las propiedades, puedes llamarlas usando el operador punto:

Este es el punto donde puedes acceder a las propiedades de tu objeto. En este caso, imprimes el nombre del participante.
Además de propiedades, también puedes implementar métodos. Crear un método funciona de manera similar a definir una función:

Aquí defines el método registrarse. Nuevamente, nota que self se pasa automáticamente como parámetro al método para acceder a la instancia. Al registrarse, podríamos imprimir un mensaje de éxito, por ejemplo:

Cuando llamas al método registrarse, se vería de la siguiente manera:

Aquí llamas al método en la instancia participante, lo que proporciona una retroalimentación sobre el registro.
Finalmente, también podemos pasar parámetros a los métodos, al igual que con las funciones. Por ejemplo, un método darse de baja que espera un parámetro para una baja anticipada:

Aquí analizas si el participante desea darse de baja anticipadamente y emites un mensaje apropiado.
ScreenShot_320
Esto te muestra cuán interactivas pueden ser tu clase y métodos, y cómo responden a las entradas.
Para concluir, deberíamos resumir los principios básicos que hemos aprendido. La definición de clases consiste en definir atributos y métodos que son relevantes para los objetos correspondientes. El constructor __init__ es fundamental para establecer atributos al crear el objeto.
Resumen – Crear y utilizar clases propias en Python
A través de la comprensión y aplicación de estos principios básicos, puedes desarrollar programas potentes y flexibles en Python. Puedes crear clases que encapsulen funciones y propiedades específicas para que la programación sea más fácil y eficaz.
Preguntas frecuentes
¿Cómo defino una clase en Python?Usa la palabra clave class seguida del nombre de la clase y dos puntos.
¿Cuál es el propósito del constructor __init__?Se utiliza para realizar inicializaciones al crear un objeto.
¿Cómo accedo a las propiedades de un objeto?Utiliza el operador punto seguido del nombre de la propiedad, por ejemplo, objeto.propiedad.
¿Puedo pasar múltiples parámetros a un método?Sí, puedes definir métodos que acepten varios parámetros.
¿Puedo utilizar funciones dentro de mis clases?Sí, los métodos son funciones que están vinculadas a una clase.