Programación Orientada a Objetos en Python

La Programación Orientada a Objetos (POO u OOP por sus siglas en inglés), es un paradigma de programación.Cómo tal, nos enseña un método el cual se basa en las interacciones de objetos para resolver las necesidades de un sistema informático.se compone de 6 elementos y 7 características

¿Qué es un Objeto?
Los objetos son la clave para entender la Programación Orientada a Objetos. Si miramos a nuestro alrededor  encontraremos un sin fin de objetos de la vida real: perro, escritorio, televisor, bicicleta, etc...

¿Qué es un Atributo?
Los atributos o propiedades de los objetos son las características que puede tener un objeto: Si el objeto fuera Perro, los atributos podrían ser: tamaño, edad, color, raza, etc...

¿Qué es un Método?
Los métodos son la acción o función que realiza un objeto. Si nuestro objeto es Perro, los métodos pueden ser: caminar, ladrar, saltar, dormir, etc...

¿Qué es una Clase?
Con todos los conceptos anteriores explicados, se puede decir que una clase es una plantilla genérica de un objeto. La clase proporciona variables iniciales de estado (donde se guardan los atributos) e implementaciones de comportamiento (métodos)

¿Qué es una Instancia?
Ya sabemos que una clase es una estructura general del objeto. Por ejemplo, podemos decir que la clase Mascota necesita tener un nombre y una especie, pero no nos va a decir cual es el nombre y cual es la especie, es aquí donde entran las instancias. Una instancia es una copia específica de la clase con todo su contenido.
ejemplo#1
Ejémplo de ámbitos y espacios de nombre
def prueba_ambitos():
    def hacer_local():
        algo = "algo local"
    def hacer_nonlocal():
        nonlocal algo
        algo = "algo no local"
    def hacer_global():
        global algo
        algo = "algo global"
    algo = "algo de prueba"
    hacer_local()
    print("Luego de la asignación local:", algo)
    hacer_nonlocal()
    print("Luego de la asignación no local:", algo)
    hacer_global()
    print("Luego de la asignación global:", algo)

prueba_ambitos()
print("In global scope:", algo)

Ejemplo#2
class Perro:

    def __init__(self, nombre):
        self.nombre = nombre
        self.trucos = []    # crea una nueva lista vacía para cada perro

    def agregar_truco(self, truco):
        self.trucos.append(truco)

>>> d = Perro('Fido')
>>> e = Perro('Buddy')
>>> d.agregar_truco('girar')
>>> e.agregar_truco('hacerse el muerto')
>>> d.trucos
['girar']
>>> e.trucos
['hacerse el muerto']
Ejemplo #3
class Coche:
    """Abstraccion de los objetos coche."""
    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..."
Ejemplo #4
class Instrumento:
    def __init__(self, precio):
        self.precio = precio

    def tocar(self):
        print "Estamos tocando musica"

    def romper(self):
        print "Eso lo pagas tu"
        print "Son", self.precio, "$$$"

class Bateria(Instrumento):
    pass

class Guitarra(Instrumento):
    pass
Ejemplo#5
class Fecha(object):
    def __init__(self):
        self.__dia = 1

    def getDia(self):
        return self.__dia

    def setDia(self, dia):
        if dia > 0 and dia < 31:
            self.__dia = dia
        else:
            print "Error"

    dia = property(getDia, setDia)

mi_fecha = Fecha()
mi_fecha.dia = 33





Comentarios

Entradas populares