martes, 17 de diciembre de 2013

Funciones o Métodos en Python


Después de un periodo de exámenes finales y trabajos de fin de ciclo, regresamos a compartir una nueva entrada en nuestro tutorial de python.
¡Y ahora sí, a ponernos al día!

Empecemos

Ahora hablaremos de las funciones o métodos en python. Un método o función es un fragmento de código que cumplen un tarea determinada.
A su vez estos métodos pueden tener parámetros o argumentos, que son variables de las cuales el método hará uso dentro de sus instrucciones, como también pueden o no retornar un valor. Las funciones o métodos en python tienen la siguiente estructura:
def function(parametro1,parametro2):
 instruccion 1
 instruccion 2
 """si retornará algún valor"""
 return valor
Una peculiaridad que tiene python, es que nos permite crear funciones con un número variable de parámetros, tan solo anteponiendo * en el último parámetro, quedando de la siguiente manera:
def function(parametro1,parametro2,*otros):
 instruccion 1
 instruccion 2
 """recorremos a los demás parámetros"""
 for x in otros:
  pass
 """si retornará algún valor"""
 return valor
¿Cómo funciona? Fácil, considera el último parámetro como una tupla, entonces para que podamos acceder a estos parámetros debemos de realizarlo a través de un bucle con un for.

¡Manos a la obra!
  1. Abrimos los archivos del proyecto que se realizó en el tutorial anterior o en su defecto lo descargamos desde github.
  2. Ahora lo que haremos es crear las funciones o métodos que toda clase debe tener para que otras clases puedan acceder a los atributos contenidos en ella, estos son los métodos SET y GET y los crearemos por cada atributo que contenga nuestra clase de la siguiente manera:
  3. def setTitulo(self,titulo):
      self.titulo = titulo
    
    def getTitulo(self):
      return self.titulo
    
    Los set nos permitirán modificar el valor de nuestro atributo y con los get lo que haremos es recuperar u obtener los valores de nuestros atributos.
  4. Creamos un método dentro de nuestra clase que nos permita mostrar todos los datos de nuestro libro.
  5. def InfoLibro(self):
      print('Datos del Libro')
      print('Titulo: {}'.format(self.getTitulo()))
      print('Autor: {}'.format(self.getAutor()))
      if self.getEstado()==True:
       print('Estado: {}'.format('Disponible'))
      else:
       print('Estado: {}'.format('Prestado'))
    
  6. Modificamos nuestro método principal para que llame a los métodos de nuestra clase Libro para acceder a los atributos y muestre la información en pantalla.
  7. def main():
            """Instanciamos un nuevo objeto de tipo libro"""
     libro = clases.clsLibro.Libro()
     """Asignamos valores a los atributos de nuestro objeto"""
     libro.setTitulo('Python para todos')
     libro.setAutor('Raul Gonzalez Duque')
     libro.setEstado(True)
     """Mostramos en pantalla los valores asignados"""
     print(libro.getTitulo())
     print(libro.getAutor())
     print(libro.getEstado())
     """Mostramos informacion general del libro"""
     libro.InfoLibro()
    
  8. Y por último ejecutamos nuestro archivo main.py en nuestra consola de comandos.
  9. $ python main.py 
    Python para todos
    Raul Gonzalez Duque
    True
    Datos del Libro
    Titulo: Python para todos
    Autor: Raul Gonzalez Duque
    Estado: Disponible
    
Codigo Completo

main.py
import sys
sys.path.append('clases')
import clases.clsLibro

def main():

 """Instanciamos un nuevo objeto de tipo libro"""
 libro = clases.clsLibro.Libro()
 """Asignamos valores a los atributos de nuestro objeto"""
 libro.setTitulo('Python para todos')
 libro.setAutor('Raul Gonzalez Duque')
 libro.setEstado(True)
 """Mostramos en pantalla los valores asignados"""
 print(libro.getTitulo())
 print(libro.getAutor())
 print(libro.getEstado())
 """Mostramos informacion general del libro"""
 libro.InfoLibro()

if __name__=='__main__':
 main()

clsLibro.py
class Libro():

 """Constructor"""
 def __init__(self):
  """Inicializamos Variables"""
  self.titulo = ""
  self.autor = ""
  self.estado = True

 def setTitulo(self,titulo):
  self.titulo = titulo

 def getTitulo(self):
  return self.titulo

 def setAutor(self, autor):
  self.autor = autor

 def getAutor(self):
  return self.autor

 def setEstado(self, estado):
  self.estado = estado

 def getEstado(self):
  return self.estado

 def InfoLibro(self):
  print('Datos del Libro')
  print('Titulo: {}'.format(self.getTitulo()))
  print('Autor: {}'.format(self.getAutor()))
  if self.getEstado()==True:
   print('Estado: {}'.format('Disponible'))
  else:
   print('Estado: {}'.format('Prestado'))
O puedes descarlargo desde github.
Y así terminamos un nuevo tutorial de python esperamos haberlos podido ayudar y cualquier duda, consulta o sugerencia no olviden dejar sus comentarios.

No hay comentarios:

Publicar un comentario