domingo, 2 de junio de 2013

Python: Funcion Constructora de Subclass


Crear una subclass dentro de una class de objects en Python, nos permite que la subclass, o class inferior, herede las funciones internas de la superclass, o clase superior.

En el siguiente código creo la class intern, que en nuestro caso consideramos que genera a una persona que forma parte de la población de un centro médico, ya sea médico o paciente. Le asignamos las propiedades name, age, sex y un número de entrada automático y consecutivo. Además, generamos una serie de funciones que nos permiten acceder a las propiedades del objeto respetando la opacidad de OOP.
class intern(object): def __init__(self, name, age, sex): """ Initiates an intern of the hospital. name = a string. age = an integer >= 0. sex = a string, 'M' for male or 'F' for female. """ self.name = name self.age = age self.sex = sex self.number = contador.next() def getName(self): return self.name def getAge(self): return self.age def getSex(self): return self.sex def getNumber(self): return self.number def growIntern(self): """ Makes the patient one year older """ self.age += 1

A continuación, generamos la subclass patient, que genera un paciente dentro de la class intern. Esta subclass amplia la class intern añadiendo la propiedad disease.
class patient(intern): def __init__(self, name, age, sex, disease): """ Initiates a patient inside of the category intern. name = a string. age = an integer >= 0. sex = a string, 'M' for male or 'F' for female. disease = a string. """ intern.__init__(self, name, age, sex) self.disease = disease def getDisease(self): return self.disease

Centrándonos en el módulo constructor __init__, vemos que en la subclass no asigna él todas las propiedades, sino que se sirve del módulo constructor de la class superior, creando una instancia para sí.
La opción mala habría sido asignar individualmente todas las propiedades como en la class intern, lo cual funcionaría exactamente igual a efecto de herencia de funciones, pero implicaría más líneas de código.

6 comentarios:

  1. Agregar equipo a red funcional:
    https://es.answers.yahoo.com/question/index?qid=20090303071451AAHytoZ

    ResponderEliminar
  2. Lo que tenemos en el estudio es un dominio:
    http://windows.microsoft.com/es-es/windows7/what-is-the-difference-between-a-domain-a-workgroup-and-a-homegroup

    ResponderEliminar
  3. Para conectar windows 7 a un dominio:
    http://windows.microsoft.com/es-es/windows/connect-computer-domain#1TC=windows-7

    http://social.technet.microsoft.com/Forums/es-ES/34168905-b315-4ce5-b8df-a29c8ba59d9c/agregar-un-equipo-con-windows-7-al-dominio-de-la-empresa?forum=wsades

    ResponderEliminar
  4. Como quitar la GPU:
    http://www.youtube.com/watch?v=JsffAlF51Js

    Como poner mas RAM:
    http://www.youtube.com/watch?v=mOlauFg2bK4

    ResponderEliminar
  5. Que hacer cuando el PC no da señal video:
    http://www.taringa.net/posts/info/4992341/Lo-primero-que-hacere-cuando-la-Pc-no-da-senal-de-video.html

    Como hacer que GPU funcione si el monitor no da señal:
    http://www.elotrolado.net/hilo_monitor-sin-senal-aun-que-el-pc-enciende_1873224

    ResponderEliminar
  6. Setting up a network for sharing resources with VNC:
    https://cgcookie.com/blender/2013/08/09/setting-up-a-render-farm/

    ResponderEliminar