Clases y métodos en Python 3 + Ejercicio – OOP

Anteriormente habíamos dicho que Python es un lenguaje orientado a objetos. Y como bien ya sabes, todo en python es un objeto. Hoy vamos a ver que son las clases, como las creamos y cuales son los atributos y métodos de nuestros objetos.

Es importante que comprendas estos conceptos para adentrarte en el mundo de la OOP (programacion orientada a objetos)

 

Clases en Python 3 

Podemos definir a las Clases como la representación abstracta de un objeto, es decir que se refiere a un conjunto de entidades con características comunes.

Entonces, a partir de estos prototipos (clases) podemos crear mas objetos que adquieran estos atributos, características y comportamientos en común.

Crear un objeto a partir de una clase se denomina instanciar.

Saber aplicar las clases y métodos te servirá para definir tus propios tipos de datos y te permitirá crear objetos de ese tipo.

Comprendiendo las clases y métodos

Tenemos tres objetos, dos de ellos pertenecen a la clase Humano y el restante es un Androide que pertenece a la clase marciano.

Por el hecho de pertenecer a la clase humano, se le brinda como un atributo la edad, nombre, y al marciano los siglos de vida y un serial de identificación (recuerda que es un alienigena :P).

La clase humano contiene métodos humanos como hablar, correr. Y la clase marciano posee el método de abducción.

ObjetoClaseAtributoMétodo
PedroHumanoEdad:25Hablar
ManuelaHumanoEdad:27Correr
AndroideMarciano

Siglos: 2

Abducción

 

Sintaxis de clases en python y ejemplos 

Para crear una clase recurrimos a la expresión class 

Class Nombredelaclase (object):

      def constructor_init (self, parámetros):

Declaración

Y cuando asignamos la clase a un objeto:

Objeto = Nombredelaclase(argumentos)

Ahora llevemos esto al código, para crear una clase en python lo hacemos de la siguiente manera:

Vamos a tratar de explicar este código para aquellos que se inician en python y además te voy a dejar una recomendación:

La palabra reservada class indica que luego de la misma se especificará una nueva clase. Entre paréntesis especificamos también que esta clase nueva hereda de object. Y siempre debemos tratar de heredar de object o de otra clase.

Cuando utilizamos def estamos definiendo los atributos a través de __init__ que es el método constructor en Python. Y siempre se ejecuta cuando se crea un objeto.
Self se refiere al objeto instanciado de esa clase sobre el cual se está invocando dicho método. Es decir, el objeto que usamos para llamar el método (#3) [Significa “yo” refiriéndonos a la clase]. Pero el uso de self es solo una buena práctica recomendada, no es una palabra reservada de uso obligatorio por lo que podríamos usar cualquiera.

En este caso ahora vamos a crear la clase Humano con el atributo Edad y Nombre. Y la clase Marciano con el atributo Siglos y Serial (identificación de un androide):

Ahora que hemos creado las clases debemos asignarles las mismas a los objetos Pedro, Manuela, Androide. Y también pasar los argumentos correspondientes a “edad” o “siglos” y “nombre” o “serial” según corresponda. Y lo hacemos de la siguiente manera:

El resultado del código completo sera:

<class ‘__main__.Humano’>
<class ‘__main__.Humano’>
<class ‘__main__.Marciano’>

Lo que nos indica que los primeros dos objetos corresponden a la clase Humano y el último a la clase Marciano.

Atributos

Los objetos cuentan con elementos que almacenan datos y otros que ejecutan acciones. A estos elementos que almacenan datos los definimos como atributos. Y los definimos así:

Vamos ahora a imprimir el atributo edad o siglo del objeto según corresponda:

Resultado:

25
27
2

Métodos

Los métodos de los objetos vendrían a ser los elementos que ejecutan acciones y se definen al igual que las funciones en python (def) pero dentro de la clase. Podemos ver a un método como las “acciones que los objetos pueden realizar”, en el caso del ejemplo anterior podrían ser hablar, correr o en el caso de la clase marciano la abducción.

 

Añadir métodos

Ahora vamos a añadirle a estas clases los métodos que tendrán estos objetos y lo hacemos como si fuera una función dentro de la clase correspondiente:

 

 

Ahora vamos a llamar estos métodos y atributos por ejemplo así:

Resultado:

Ha corrido 12 km
Pedro Rosendo
– uff, Hola
00199017 ha abducido a Pedro Rosendo usando ondas

Has visto qué gran utilidad tienen las clases y métodos. Seguro se te han ocurrido miles de ideas! En fin aquí te dejo el código completo para que juegues con el!

 

 

Ejercicio

Te dejo un ejercicio: Puedes agregar un limite al poder de abducción de nuestro androide en km, y dependiendo los kilómetros que corra Pedro, será abducido o no! Lo resolvemos?. Venga que para eso somos programadores semi androides! Solo debemos agregar  un condicional if / else dentro de un bucle while. Y utilizar los métodos y atributos para imprimir el resultado! Te dejo el código completo en un spoiler:

Resultado

Clases y metodos de objetos en python-min

Esto ha sido todo, espero te haya gustado y no hayas sido abducido de mi sitio, venga deja un comentario!! Bye bye

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.