lunes, 22 de septiembre de 2014

Tutorial de Python parte 15 - Programación Orientada a Objetos




Continuamos con los aspectos básicos del lenguaje Python, hoy nos centraremos en uno de los puntos más importantes, que es lo relativo a la programación orientada a objetos (POO u OOP en sus siglas en inglés).

La utilización de objetos en la programación es una parte esencial, podemos crear objetos a partir de las clases, las clases son entidades compuestas por propiedades y métodos que permiten proporcionar características únicas al objeto instanciado de la clase.

Las clases al igual que las funciones permiten la reutilización de código, permitiendo la modularidad, es decir una correcta estructuración de la aplicación.

Para crear clases en Python utilizaremos la palabra class seguido del nombre de la clase, en las clases podemos incluir un método constructor a través del método __init__(self), las propiedades puedes ser definidas con un valor por defecto, como se puede ver en el interior del método constructor, self hace referencia a la propia clase, así que ésto será requerido en el interior de la clase para ir accediendo tanto a las propiedades como a los métodos de la clase.

Para crear propiedades o métodos privados incluye dos guiones bajos al principio ...


#propiedad privada
__saluda = 'Hola Mundo'

#metodo privado
def __saluda(self):
   return self.__saluda

En este capítulo del vídeo tutorial creamos una clase llamada Persona() en  modulos/persona.py, ya en el capítulo anterior vimos como crear módulos e importarlos. Posteriormente importamos la clase del módulo persona para acceder a la clase Persona() y utilizar sus métodos y propiedades.

Código de modulos/persona.py ...

class Persona():
 
 #metodo constructor
 def __init__(self):
  #propiedades de la clase con un valor por defecto
  #propiedades privadas incluir __ al inicio
  self.__nombre = 'No has introducido un nombre'
  self.__pais = 'No has introducido un pais'
  #propiedad publica
  self.sexo = ["hombre", "mujer"]
 
    #metodos 
 def nombre(self, nombre=''):
  if (nombre != ''): return nombre
  else: return self.__nombre

 def pais(self, pais=''):
  if (pais != ''): return pais
  else: return self.__pais
 
 def edad(self, edad=0):
  return edad

 def estatura(self, estatura=0):
  return estatura

 def peso(self, peso=0):
  return peso



clases.py donde importamos el módulo persona y creamos una instancia de la clase Persona() para acceder a sus métodos y propiedades ...

from modulos.persona import Persona

persona = Persona()

print("\n\n **** PERSONA **** \n\n")
print("Nombre:", persona.nombre("Dade"))
print("Pais:", persona.pais("Peru"))
print("Edad:", persona.edad(22))
print("Sexo:", persona.sexo[0])
print("Estatura:", persona.estatura(1.80))
print("Peso:", persona.peso(70))