Comunicacion entre objetos

Cristhian Boujon cristhianboujon en gmail.com
Mar Feb 10 15:36:41 CET 2009


Desde el punto de vista de lo que estás modelando (dominio del problema) la
valvula debe contener un sensor que pueda medir el caudal. en tu modelo, la
valvula no contiene ningun sensor, entonces:

#Nombre Archivo: Valvula.py
class Valvula:
   def __init__(self):
       self.condicion = 0  #(0= cerrado, 1=abierto)
       self.caudal = 0     #caudal inicial
       self.sensor1 = Sensor()    #Ahora la valvula contiene un sensor para
poder medir el caudal.

   def Abrir(self):
       self.condicion = 1

   def Cerrar(self):
       self.condicion = 0

   def Caudal_Actual(sefl):
       self.caudal=sensor1.Caudal_Medido()
       return self.caudal

---------------------------------------
#Nombre Archivo: Sensor.py
class Sensor():

   def __init__(self):
       self.caudal = 10

   def Caudal_Medido(self):
       #codigo para medir
       return self.caudal #por ejemplo


Una recomendacion por cuestiones de convencion, los metodos (mensajes)
ponelos en minuscula.
Saludos! y cualquier cosa pegá un chiflido.

2009/2/10 fernando parodi <parodi.fer en gmail.com>

> En casi todos los manuales en los que busque decia "los objetos se
> comunican
> mediante mensajaes" (?)
> pero no logro comprender como  y los ejemplos que dan son realmente
> inutiles
> o muy comlicados para alguien que esta
> empesando con POO.
> Para probar la teoria a modo de ejercicio trate de repetir el ejemplo de un
> articulo de una revista(no tenia codigo solo diagramas UML)
>
> Se crean modelan 2 objetos "Valvula" y "Sensor" yo los escribi asi:
>
> #Nombre Archivo: Valvula.py
> class Valvula:
>    def __init__(self):
>        self.condicion = 0  #(0= cerrado, 1=abierto)
>        self.caudal = 0     #caudal inicial
>
>    def Abrir(self):
>        self.condicion = 1
>
>    def Cerrar(self):
>        self.condicion = 0
>
>    def Caudal_Actual(sefl):
>        self.caudal=sensor1.Caudal_Medido()
>        return self.caudal
>
> ---------------------------------------
> #Nombre Archivo: Sensor.py
> class Sensor():
>
>    def __init__(self):
>        self.caudal = 10
>
>    def Caudal_Medido(self):
>        #codigo para medir
>        return self.caudal #por ejemplo
>
> ----------------------------------------
>
> despues para probar los cargo en el IDLE.
>
> >>> import Valvula
> >>> import Sensor
> >>> valvula1 = Valvula()
> >>> sensor1 = Sensor()
> >>> valvula1.Caudal_Actual()
>
> Y me da un error de que sensor1 no esta defindo, bueno ya probe darle la
> vuelta varias veces a esto.
> La cuestion es que yo quiero preguntarle a la valvula que caudal esta
> pasando, entonces ella le tiene que preguntar al sensor que caudal esta
> pasando
> y alli esta el meollo de la cuestion como hacer que valvula le tire un
> mensajillo al sensor
>
> "Querido Sensor:
>    Como estas? y la familia como anda? los sensorcitos ya estan grandes
> seguro, y si.. los años pasan.
>    Pero bueno, el motivo por el cual te escribo es para preguntarte que
> caudal estas midiendo ahora mismo?
>
>    Saludos y abrazos
>    siempre tuya Valvula"
>
> bueno algo asi. Se entiende lo que no entiendo?
> Gracias a todos por tan solo leer mi msg.
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
Cristhian A. Boujon
---------------------------------
http//esintuitivo.blogspot.com
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es