Clases¶
La Programación Orientada a Objetos es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos se utilizan como metáfora para emular las entidades reales del negocio a modelar.
Muchos de los objetos prediseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas del sexenio: herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990 y en la actualidad resulta imprescindible para todo programador.
¿Como creamos una clase en Python?¶
Pues es muy sencillo ya que la sintaxis como siempre es muy similar a la de otros lenguajes. En este caso vamos a poner un ejemplo creando una clase persona de la que heredará la clase informático.
Y lo único que debemos de tener presente es que a diferencia de C++ que lo pone automáticamente en Python las funciones de la clase reciben como parámetro el objeto que las llama es por eso que ponemos self
. Sería equivalente al puntero this
en C++.
class Persona: #Clase persona
def __init__(self, nombre, apellidos, altura, edad): #Constructor
self.nombre_ = nombre
self.apellidos_ = apellidos
self.altura_ = altura
self.edad_ = edad
def getnombre(self): #Observador que devuelve el nombre_ de la persona
return self.nombre_
def getapellidos(self): #Observador que devuelve los apellidos_ de la persona
return self.apellidos_
def getaltura(self): #Observador que devuelve la altura_ de la persona
return self.altura_
def getedad(self): #Observador que devuelve el nombre_ de la persona
return self.edad_
def setnombre(self, nombre): #Modificador que permite cambiar el nombre_ de la persona
self.nombre_ = nombre
def setapellidos(self, apellidos): #Modificador que permite cambiar los apellidos_ de la persona
self.apellidos_ = apellidos
def setaltura(self, altura): #Modificador que permite cambiar la altura_ de la persona
self.altura_ = altura
def setedad(self, edad): #Modificador que permite cambiar la edad_ de la persona
self.edad_ = edad
def hablar(self): #Metodo de la clase
return "Estoy hablando"
def caminar(self): #Metodo de la clase
return "Estoy caminando"
def dormir(self): #Metodo de la clase
return "zZz"
class Informatico(Persona): # Informático hereda de forma pública de persona
lenguajes_
experiencia_
def __init__(self, lenguajes, experiencia):
self.lenguajes_ = lenguajes
self.experiencia_ = experiencia
def getLenguajes(self):
return self.lenguajes_
def aprender(self, lenguajes):
self.lenguajes_ = lenguajes
return self.lenguajes_
def programar(self):
return "Estoy programando"
def repararPC(self):
return "He reparado tu pc"