Python es un lenguaje orientado a objetos, de modo que tiene soporte de primer nivel para la creación de clases. No obstante, no es condición necesaria hacer uso de ellas para poder crear un programa (esto ocurre en otros lenguajes, como Java). De hecho, hemos estado trabajando hasta ahora sin hacer mención a ellas ni emplearlas directamente.
class Nombre: pass
class ClaseA(ClaseB,ClaseC,ClaseD): pass
El nombre de la clase debe empezar con mayuscul y continiar con minusculas. pass sirve para rellenar con espacion (clase vacia).
class Alumno:
def __INIT__(self,nom):
self.nombre = nom
def saludar(self)
print('Hola',{self.nombre})
Las clases pueden contener funciones, a las que llamamos métodos. Todo nuestro código estará indentado cuatro espacios, para indicar que queremos ubicarlo dentro de la clase.
class Alumno:
def saludar(self):
print('Hola, mundo !')
Todas las funciones definidas dentro de una clase deberán tener al menos un argumento, que por convención se lo llama self y es una referencia a la instancia de la clase.
joven = Alumno() joven.saludar() Alumno.saludar(joven)
joven = Alumno('Pablo')
joven.saludar()
La herencia es una herramienta fundamental para la orientación a objetos. Permite definir jerarquías de clases que comparten diversos métodos y atributos.
class Rectangulo:
def __init__(self,b,h):
self.b = b
self.h = h
def area():
return senf.b * self.h
rect1 = Rectangulo(20,10)
print('Area es',rect1.area()) #200
class Triangulo:
def __init__(self,b,h):
self.b = b
self.h = h
def area(self):
return (self.b * self.h) / 2
tria1 = Triangulo(8,5)
print('Area es',tria1.area()) #20
class Poligono:
def __init__(self,b,h):
self.b = b
self.h = h
class Rectangulo(Poligono):
def area(self):
return self.b * self.h
class Triangulo(Poligono):
def area(self):
return (self.b * self.h) / 2
rectangulo = Rectangulo(20, 10)
triangulo = Triangulo(20, 12)