Inicio > Historias > Reorientado a objetos

Reorientado a objetos

Me estoy dejando orientar por la cosa esa de los objetos. Al principio no tenía muy claro lo que eran, pero poco a poco la cosa va mejorando.

En Python, puedes crear "clases". Una clase es un objeto con cosas (datos) y cosas que hacen cosas (procedimientos, métodos o algo así). No puedes hacer nada con las clases, sino que defines objetos que comparten las características de de su clase. Supongamos que tienes la "clase" de los osos. Los osos comparten algunas características y hacen algunas cosas iguales, pero otras de estas cosas se pueden definir (puedes elegir un oso panda, o un oso polar, que comparten todos los rasgos de la categoría oso, pero al mismo tiempo poseen rasgos distintivos). En lugar de crear un oso panda a partir de cero, con todos sus rasgos, dices que el oso panda es parte de la clase oso, pero tiene las características distintivas de: a) parecer un peluche, b) ser blanco y negro, y c) comer bambú. Te ahorras una definición de diccionario de cosas.

Ejemplo en Python, de las cosas de redes neuronales que estoy haciendo:

- Las características de una capa de unidades:

#Se crea una clase nueva llamada Capa.
#Las capas pueden hacer tres cosas: ser creadas, contar sus nodos #o imprimirse.
#Además, las capas guardan algunos datos: si son capas output, y
#el número de nodos que tienen.
#No le hagais caso al "self", que sólo engorronea lo que hace la
#capa.

class Capa:
    def crear(self, nodos, tipo):
        if tipo == output:
           self.capa = zeros(([nodos, 1]), Float)
        else:
           self.capa = zeros(([1, nodos]), Float)
        self.nodos = nodos
        self.tipo = tipo
    def contar(self):
        return self.nodos
    def imprimir(self):
        print self.capa

¿De qué sirve esta clase Capa? Pues ahora puedo generar todos los objetos que quiera que compartan las características de una capa: una capa input, una capa output y una capa de unidades ocultas, por ejemplo. Luego, con la clase de las conexiones, puedo generar conexiones entre las capas. Cada una de esas cosas es un objeto. Las conexiones también pueden hacer cosas, e interactúan con las capas. Por ejemplo, cuando se crean las conexiones, éstas toman los valores de los nodos de cada capa para crear matrices de pesos del tamaño adecuado.

2004-03-22 | Ctugha | 2 Comentarios | Enlázame | Imprímeme

Referencias (TrackBacks)

URL de trackback de esta historia http://jkaranka.blogalia.com//trackbacks/16950

Comentarios

1
De: Salva Fecha: 2004-03-26 20:01

De hecho una clase es un conjunto de variables (atributos) y un conjunto de funciones (métodos), empaquetados dentro de un mismo nombre.

Y un objeto es una instancia de esa clase.

Un saludo.



2
De: Ctugha Fecha: 2004-03-26 20:08

Cómo se nota que no me conozco la jerga :D

Pero eso, que lo de las clases funciona de puta madre, y ahorra un montón enorme de líneas de código según qué estés haciendo.



Nombre
Correo-e
URL
Dirección IP: 54.224.220.72 (797f5fd02f)
Comentario
¿Cuánto es: diez mil + uno?






Todas las Historias


Translate me!


Archivos

<Agosto 2018
Lu Ma Mi Ju Vi Sa Do
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
             

Documentos

  • Chorradas de internet
  • Planeta Encantado
  • Python: pruebas, cosas y demás.
  • Relatos
  • Material del juego de rol de los teletubbies.



  • Blogalia

    Blogalia








    Busca en El Asiento




    Bitácoras

    Desbarradas de Akin
    Blog de Beor
    La Biblioteca de Babel
    El Rincón de Canopus
    Ciencia 15
    Copensar
    La Cosa Húmeda
    Hazte Escuchar
    hipocondría demagógica
    JCantero
    Magonia
    diario del osito
    Por la Boca Muere el Pez
    El Paleofreak
    Segfault
    Tirando Líneas
    El Triunfo de Clío
    Una cuestión personal



    Cybergurús

    Epaminondas
    fernand0
    JJMerelo
    Joma
    Jordi
    mini-d
    mur0



    Laboratorios Virtuales

    Laboratorio Virtual de Psicología
    PsychExperiments



    Webs

    Homo Webensis
    Magufomedia
    ARP-SAPC

    Comportamental br> Neurociencias para niños
    Psicoteca







    Listed on BlogShares

    Creative Commons License



    This work is licensed under a Creative Commons License. 2003 Ctugha