¿Quieres seguir aprendiendo mucho mas sobre el poderoso Python? Pues manos a las obras y te damos la bienvenida a la tercera parte de este tutorial de Introducción a Python para Principiantes. En donde se busca romper el hielo con este lenguaje de programación tan poderoso y muy utilizado hoy en día.
Python para Principiantes – Tutorial: Parte 3
[wp-svg-icons icon=»indent-decrease» wrap=»i»] Programación Orientada a Objetos
Antes de empezar con la parte 3 del tutorial Python para Principiantes, debemos de tomar en cuenta que Python es un lenguaje de programación Multiparadigma, lo cual quiere decir que podremos trabajar de manera estructurada (que es tal cual como hemos estado trabajando hasta el momento), pero también se puede trabajar con programación orientada a objetos o programación funcional. Lo cual nos permite utilizar a Python tanto para desarrollar aplicaciones complejas o para scripts que nos permitirán realizar tareas puntuales de mantenimiento a nivel de sysAdmin.
La Programación Orientada a Objetos, es un potente paradigma de la programación en general, que consiste en modelar aquellos aspectos importantes de la vida real en clases y objetos, por lo que nuestra aplicación estará basada en la interacción de dichos objetos.
[wp-svg-icons icon=»file-css» wrap=»i»] Clases y Objetos
Antes de avanzar en nuestra Parte 3 de Python para Principiantes, debemos de tener muy claro lo que es una clase y lo que es un objeto, ya que son piezas claves de este paradigma de la programación. Podriamos decir que un objeto es una entidad que agrupa un estaco con una funcionalidad relacionada.Dicho estado del objeto, se define por medio de variables, las cuales se llaman atributos y las funcionalidades son funciones, a las cuales llamamos métodos.
Un ejemplo bastante sencillo, es el de un automóvil, el cual tiene ciertos atributos como lo son, la marca y el número de puertas, y métodos tales como los de arrancar y parar.
Por su parte, una clase podría ser denominada como una plantilla, a partir de la cual se instancia un objeto, plantilla en la que son definidos aquellos atributos y objetos de dicha clase.
Ahora bien, lo que haremos a continuación, es la abstracción del objeto automóvil del cual estábamos hablando anteriormente:
class Automovil: """Abstraccion de los objetos automovil.""" def __init__(self, gasolina): self.gasolina = gasolina print "Tenemos", gasolina, "litros" def arrancar(self): if self.gasolina > 0: print “Arranca” else: print "No arranca" def conducir(self): if self.gasolina > 0: self.gasolina -= 1 print "Quedan", self.gasolina, "litros" else: print "No se mueve"
En Python, una clase se define indicando la palabra reservada class seguida del nombre de la clasa, dos puntos (:) y por último y de manera indentada vendría el contenido de la clase como tal. De igual manera que en las funciones, si la primera linea del cuerpo de una clase es un cadena de texto, esta cumplirá la función de docstring.
Al que de seguro llamo tu atención es el nombre de la función __init__ , se trata del nombre de una convención y de algo que se escribió de esta manera para que se vea atractivo. Este método se ejecuta justo después de crear un objeto utilizando esta clase como plantilla, proceso que es mejor conocido con el nombre de instansación.
Un punto a tomar en cuenta, es que el primer parámetro de la función __init__ asi como el resto de métodos de la clase siempre sera self, lo cual es una idea inspirada en Modula-3 y tiene como objeto el referirse al objeto actual. La naturaleza del mismo es para poder referirse o acceder de manera directa a los atributos o métodos del objeto como tal, diferenciando de esta manera por ejemplo las variables locales de las del objeto.
Para aclarar mejor lo antes expuesto, retomemos el método __init__ de nuestra anterior clase, a la cual hemos llamado «Automovil» en el cual utilizamos self para poder asignar al atributo gasolina (recordemos self.gasolina) el valor especificado por el desarrollador en el parámetro gasolina. Hay que tomar en cuenta que el parámetro gasolina, sera destruido al final de la función, a diferencia del atributo gasolina, el cual se conservara (y podrá ser accedido también) mientras el objeto se mantenga con vida o vivo.
Ahora bien, para poder crear un objeto es mucho mas fácil de lo que de seguro te estas imaginando, basta con escribir el nombre de la clase seguido y entre paréntesis el parámetro o parámetros que sean necesarios. Dichos parámetros que se declaren entre paréntesis son lo que se pasaran al método __init__ que si recordamos, es el método llamado al ser instanciada la clase.
mi_automovil = Automovil(3)
Es muy probable, que al ver como hemos creado nuestro primer objeto solamente le pasamos 1 parámetro (específicamente el número 3), cuando en el método __init__ se encuentran definidos 2. No se trata de un error del tutorial ni nada por el estilo, esto se debe a que Python pasa de manera automática el primer parámetro (self) como la referencia al objeto que se crea.
Ya teniendo nuestro objeto creado, podemos acceder a los atributos y métodos del mismo mediante la simple sintaxis objeto.atributo (para los atributos) y también objeto.método() (para los métodos del objeto, colocando en el paréntesis los parámetros que sean necesarios).
>>> print mi_automovil.gasolina 3 >>> mi_automovil.arrancar() Arranca >>> mi_automovil.conducir() Quedan 2 litros >>> mi_automovil.conducir() Quedan 1 litros >>> mi_automovil.conducir() Quedan 0 litros >>> mi_automovil.conducir() No se mueve >>> mi_automovil.arrancar() No arranca >>> print mi_automovil.gasolina 0
Recordemos que para el lenguaje de programación Python todo es un objeto, incluso las cadenas de texto, las cuales poseen sus propios métodos, como por el ejemplo upper(), el cual retorna el texto que contiene la cadena de caracteres todo en mayúsculas.
Conclusión
Al finalizar esta parte 3 de este interesante Tutorial de Python para Principiantes hemos ampliado el dominio sobre el lenguaje de programación Python, explorando todo lo relacionado con la programación orientada a objetos. Si quieres seguir aprendiendo sobre Python sugerimos que estés muy atento a esta serie de tutoriales, los cuales están hechos especialmente para ti que quieres aprender a programar en Python.
Síguenos de cerca pues en breve publicaremos: Introducción a Python para Principiantes Parte 4.