domingo, 11 de febrero de 2018

Programación Orientada a Objetos en Python


Como les dije anteriormente estoy estudiando nuevamente python para unas cosas que tengo que hacer. Más allá de esto, vamos a repasar los conceptos de poo en python.

Primero y principal python implementa la poo con clases, como lo hacen la mayoría de los lenguajes. Las clases son una abstracción de un conjunto de objetos, esto luego define el tipo de nuestros objetos. Veamos las clases en python:

class Objeto:
    pass

class Antena:
    pass

class Pelo:
    pass

class Ojo:
    pass

Como se puede ver se usa la convención CamelCase para el nombre de las clases, y por supuesto las clases pueden tener atributos y métodos:

class Objeto():
    color = "verde"
    tamanio = "grande"
    aspecto = "feo"
    antenas = Antena()
    ojos = Ojo()
    pelos = Pelo()

    def flotar(self):
        print 12

Por alguna razón que desconozco el primer parámetro de los métodos debe ser self (en este punto alguien me puede ayudar?). Y tambien se utiliza la misma convención.

Todo muy lindo pero donde están los objetos? veamos como instanciar objetos :

et = Objeto()
print et.color
print et.tamanio
print et.aspecto
et.color = "rosa"
print et.color

Una característica de poo es la herencia que esta implementada en python tambien, se agrega la clase padre entre paréntesis luego del nombre de la clase :


class NuevoObjeto(Objeto):
    pie = Pie()

    def saltar(self):
        pass

Podemos heredar de la clase object que es la clase principal de Python:

class Antena(object):
    color = ""
    longitud = ""

class Pelo(object):
    color = ""
    textura = ""

Luego seguimos con el miniresumen.