Foros del Web » Programando para Internet » Python »

Usar variable de una clase

Estas en el tema de Usar variable de una clase en el foro de Python en Foros del Web. Buenas tengo el sguiente código es una calculadora @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original class Prueba:   def __init__ ( self , n1 , n2 ...
  #1 (permalink)  
Antiguo 20/03/2011, 19:52
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Usar variable de una clase

Buenas tengo el sguiente código es una calculadora
Código Python:
Ver original
  1. class Prueba:
  2.   def __init__(self,n1,n2):
  3.     self.num1=n1
  4.     self.num2=n2
  5.   def suma(self):
  6.     resultado=self.num1 + self.num2
  7.     print ("Suma: ",resultado)
  8.     nume1=resultado
  9.    
  10.   def resta(self):
  11.     resultado=self.num1 - self.num2
  12.     print ("Resta: ",resultado)
  13.   def mult(self):
  14.     resultado=self.num1 * self.num2
  15.     print ("Multimplicacion ",resultado)
  16.   def div(self):
  17.     resultado=self.num1 / self.num2
  18.     print ("Divicion: ",resultado)
  19.  
  20.   def raiz(self):
  21.     resultado=math.sqrt(self.num1)
  22.     print ("Raiz Cuadrada: ",resultado)
  23.        
  24. import math
  25.  
  26. ctrl="4"
  27.  
  28. def maini():
  29.     operador=""
  30.    
  31.     operador= input("Operador:")
  32.     nume2= input("Ingrese Segundo Numero: ")
  33.     res=Prueba(int(nume1),int(nume2))
  34.     if operador=="+":
  35.        
  36.         res.suma()
  37.         print
  38.        
  39.     elif operador=="-":
  40.         res.resta()
  41.        
  42.     elif operador=="*":
  43.         res.mult()
  44.        
  45.     elif operador=="/":
  46.         res.div()
  47.        
  48.     elif operador=="raiz":
  49.         res.raiz()
  50.        
  51.     elif operador=="0":
  52.         time.sleep(1)
  53.         exit()
  54.     return operador
  55. nume1= input("Ingrese Primer Numero: ")    
  56. ctrl=maini()
  57.  
  58. while ctrl != "0":
  59.     maini()

lo que quiero hacer es usar la variable "resultado" que esta dentro de la clase prueba, por que esa variable se la quiero asignar a la variable num1. para que me tome el valor del reultado de la primera operacion y continuar haciendo calculos a partir de esa variable mas la nueva que le asginaré a la variable 2, nótese que esta dentro de un while

Última edición por Lion619; 20/03/2011 a las 20:03
  #2 (permalink)  
Antiguo 20/03/2011, 20:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Usar variable de una clase

Puedes usar return para devolver el resultado de tus operaciones en cada método de la clase Prueba

Ademas por que no intentas algo mas sencillo como:
Código:
leer num1
while:
    leer operador
    leer num2
    haz operaciones
    num1 = resultado
Todo eso dentro del código de la función maini.
  #3 (permalink)  
Antiguo 20/03/2011, 20:31
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Usar variable de una clase

Código Python:
Ver original
  1. class Prueba:
  2.     def __init__(self,n1,n2):
  3.         self.num1=n1
  4.         self.num2=n2
  5.    
  6.     def suma(self):
  7.         resultado=self.num1 + self.num2
  8.         print ("Suma: ",resultado)
  9.         return resultado
  10.    
  11.     def resta(self):
  12.         resultado=self.num1 - self.num2
  13.         print ("Resta: ",resultado)
  14.         return resultado
  15.     def mult(self):
  16.         resultado=self.num1 * self.num2
  17.         print ("Multimplicacion ",resultado)
  18.         return resultado
  19.     def div(self):
  20.         resultado=self.num1 / self.num2
  21.         print ("Divicion: ",resultado)
  22.         return resultado
  23.     def raiz(self):
  24.         resultado=math.sqrt(self.num1)
  25.         print ("Raiz Cuadrada: ",resultado)
  26.                
  27. import math
  28.  
  29.  
  30. ctrl="4"
  31.  
  32. def maini():
  33.     operador=""
  34.    
  35.     operador= input("Operador:")
  36.     nume2= input("Ingrese Segundo Numero: ")
  37.     res=Prueba(int(nume1),int(nume2))
  38.     if operador=="+":
  39.        
  40.         res.suma()
  41.         resu=suma(resultado)
  42.         num1=resu
  43.        
  44.     elif operador=="-":
  45.         res.resta()
  46.        
  47.     elif operador=="*":
  48.         res.mult()
  49.        
  50.     elif operador=="/":
  51.         res.div()
  52.        
  53.     elif operador=="raiz":
  54.         res.raiz()
  55.        
  56.     elif operador=="0":
  57.         time.sleep(1)
  58.         exit()
  59.     return operador
  60. nume1= input("Ingrese Primer Numero: ")    
  61. ctrl=maini()
  62.  
  63. while ctrl != "0":
  64.     maini()
asi=?=?= y ahora para usarlas?? ;:/!!! te lo juro, esto de python no es lo mio ;/
  #4 (permalink)  
Antiguo 20/03/2011, 21:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Usar variable de una clase

Yo mas bien me refería algo así:
Código Python:
Ver original
  1. import time
  2. import math
  3.  
  4. class Prueba:
  5.     def __init__(self, n1, n2):
  6.         self.num1 = n1
  7.         self.num2 = n2
  8.        
  9.     def suma(self):
  10.         resultado = self.num1 + self.num2
  11.         print ("Suma: ", resultado)
  12.         return resultado
  13.    
  14.     def resta(self):
  15.         resultado = self.num1 - self.num2
  16.         print ("Resta: ", resultado)
  17.         return resultado
  18.  
  19.     def mult(self):
  20.         resultado = self.num1 * self.num2
  21.         print ("Multiplicacion ", resultado)
  22.         return resultado
  23.        
  24.     def div(self):
  25.         resultado = self.num1 / self.num2
  26.         print ("Division: ", resultado)
  27.         return resultado
  28.  
  29.     def raiz(self):
  30.         resultado = math.sqrt(self.num1)
  31.         print ("Raiz Cuadrada: ", resultado)
  32.         return resultado
  33.        
  34.  
  35. def maini():
  36.     nume1 = input("Ingrese Primer Numero: ")
  37.     res = Prueba(0, 0)
  38.     while True:
  39.         operador = input("Operador:")
  40.         nume2 = input("Ingrese Segundo Numero: ")
  41.         res.num1 = int(nume1)
  42.         res.num2 = int(nume2)
  43.         if operador == "+":
  44.             nume1 = res.suma()
  45.         elif operador == "-":
  46.             nume1 = res.resta()
  47.         elif operador == "*":
  48.             nume1 = res.mult()
  49.         elif operador == "/":
  50.             nume1 = res.div()
  51.         elif operador == "raiz":
  52.             nume1 = res.raiz()
  53.         elif operador == "0":
  54.             return operador
  55. maini()
  #5 (permalink)  
Antiguo 20/03/2011, 21:31
 
Fecha de Ingreso: junio-2009
Mensajes: 26
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Usar variable de una clase

Excelente viejo Muchisimas gracias!!
ahora... sacame de esta duda....
Código Python:
Ver original
  1. res = Prueba(0, 0)
  2.     while True:

eso, como funciona? cual es la lógica?
  #6 (permalink)  
Antiguo 20/03/2011, 21:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Usar variable de una clase

Es muy sencillo, res es un objeto de la clase Prueba y como tal lo instanciamos una vez y listo. No tiene caso instanciar tantas veces un objeto.

while True es un ciclo "infinito".

Etiquetas: clase, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:30.