9 - Creación de una clase en Python

Lección 9 del curso Python Nivel Avanzado.

Introducción

En la lección anterior vimos una introducción a la Programación Orientada a Objetos y allí hablamos de algunas definiciones básicas de lo que es un objeto y una clase con sus métodos y atributos.

En esta lección veremos el elemento central de la Programación Orientada a Objetos: las clases, que recordemos son como esas plantillas o moldes a partir de las cuales podemos definir los métodos y atributos para posteriormente crear los objetos en memoria.

En particular veremos cómo crear una clase en Python junto con sus métodos y atributos y también hablaremos de la “instanciación” que es el proceso de crear un objeto en memoria a partir de una clase.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Ejemplo hipotético: productos bancarios

Analicemos lo que ocurre con algunos productos que podemos adquirir en una entidad bancaria, como por ejemplo una cuenta de ahorros, una tarjeta de crédito o una inversión.

Aunque son productos con diferentes características, tienen algunos elementos en común. Por ejemplo:

Con esta información crearemos el objeto ProductoBancario, un objeto genérico con unos atributos y métodos asociados:

Desde luego los productos que hemos mencionado probablemente tendrán más atributos y métodos, pero la idea es ver cómo construir un objeto básico.

Creación de una clase

Para crear la clase usamos la palabra clave class seguida del nombre de la clase y :. Se sugiere que si el nombre tiene dos o más palabras estas se escriban sin dejar espacios y con la primera letra en mayúscula.

Instanciación

Recordemos que la clase es un molde a partir del cual podemos crear múltiples objetos. El proceso de crear un objeto en memoria se conoce como instanciación y es muy simple: basta con escribir el nombre de la clase recién creada seguida por paréntesis de apertura y cierre vacíos.

El método __init__ y los atributos

Una práctica común en Python es agregar un método que siempre tendrá el nombre __init__ y que, de estar definido, será el que se ejecuta en primer lugar siempre que creemos una instancia del objeto.

Y podemos aprovechar este método para definir los atributos que harán parte de nuestra clase.

Los métodos agregar y retirar

Como lo mencionamos al inicio, con esta clase genérica podremos crear por ejemplo productos asociados a cuentas de ahorro, tarjetas de crédito o inversiones. E independientemente del tipo de producto podremos en esencia agregar o retirar dinero, lo cual terminará afectando el saldo disponible.

Como agregar y retirar dinero son acciones, en el contexto de la Programación Orientada a Objetos los denominamos métodos. Y los creamos de manera muy similar al método __init__: la palabra clave def seguida del nombre del método y entre paréntesis sus argumentos y siempre incluyendo como argumento la referencia a la misma clase (self). Además, se sugiere que para métodos con dos o más palabras las escribamos siempre en minúsculas y separadas por guiones de piso (ejemplo: nombre_del_metodo).

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

¡Muy bien! con lo visto en esta lección ya tenemos los elementos básicos para la creación de clases en Python y sabemos cómo inicializarla y cómo crear sus métodos y diferentes instancias.

En la próxima lección nos enfocaremos en lo que se conoce como los atributos públicos y privados, una herramienta en Python que nos permite determinar si podemos acceder o modificar un atributo sólo desde la clase o fuera de ella.

Ver todas las lecciones de este curso