Duda programacion en python.

  1. #1
    AutoBanned Avatar de Domovik
    Registro
    25 abr, 13
    Mensajes
    1,106
    Me gusta (Dados)
    86
    Me gusta (Recibidos)
    293

    Pregunta Duda programacion en python.

    Estoy intentando hacer una simple suma de dos variables mediante el paradigma de la POO en Python, el caso es que ejecuto el codigo pero no me da error sino un resultado con muchas letras y numeros como si fuese un numero hexadecimal.
    PD: Que no salte uno diciendo que solo sabe C porque Python es el segundo lenguaje mas usado del mundo, y por el que empiezan todos los principiantes a programar.

    Mi codigo:

    class OpAritmeticas():
    def __init__(self):
    self.variableA = 2
    self.variableB = 2
    self.suma()
    def suma(self):
    self.suma = self.variableA + self.variableB
    return self.suma

    if __name__ =='__main__':
    if True:
    a = 2
    b = 2
    s = OpAritmeticas()
    print s

    Ese codigo me da un rseultado como este: <__main__.OpAritmeticas instance at 0x05B224B8>
    Buneo hay lo dejo si alguen me puede ayudar...

    PD2: El codigo esta indentado correctamente pero nose porque el foro se come los espacios en blanco.

  2. #2
    ForoParalelo: Miembro Avatar de J.M.Statham
    Registro
    07 abr, 13
    Mensajes
    2,696
    Me gusta (Dados)
    803
    Me gusta (Recibidos)
    434
    Cita Iniciado por Domovik Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    Estoy intentando hacer una simple suma de dos variables mediante el paradigma de la POO en Python, el caso es que ejecuto el codigo pero no me da error sino un resultado con muchas letras y numeros como si fuese un numero hexadecimal.
    PD: Que no salte uno diciendo que solo sabe C porque Python es el segundo lenguaje mas usado del mundo, y por el que empiezan todos los principiantes a programar.

    Mi codigo:
    Código:
    class OpAritmeticas():
        def __init__(self):
            self.variableA = 2
            self.variableB = 2
            self.suma()
        def suma(self):
            self.suma  = self.variableA + self.variableB
            return self.suma
    
    if __name__ =='__main__':
        if True:    
            a = 2
            b = 2        
            s = OpAritmeticas()
            print s
    Ese codigo me da un rseultado como este: <__main__.OpAritmeticas instance at 0x05B224B8>
    Buneo hay lo dejo si alguen me puede ayudar...

    PD2: El codigo esta indentado correctamente pero nose porque el foro se come los espacios en blanco.
    Lo de negrita no es verdad.

    No te funciona porque estás imprimiendo 's', que no es el return de suma() sino un objeto de la clase OpAritmeticas (s = OpAritmeticas() creas un objeto y lo asignas a s).


    Código:
    class OpAritmeticas():
        def __init__(self):
            self.variableA = 2
            self.variableB = 2
            self.suma()
        def suma(self):
            self.suma  = self.variableA + self.variableB
            return self.suma
    
    if __name__ =='__main__':
        if True:    
            a = 2
            b = 2        
            s = OpAritmeticas()
            print s.suma
    Así funciona pero el codigo no tiene mucho sentido, no se lo que quieres hacer xd
    Última edición por J.M.Statham; 13/12/2013 a las 02:15

  3. #3
    AutoBanned Avatar de Domovik
    Registro
    25 abr, 13
    Mensajes
    1,106
    Me gusta (Dados)
    86
    Me gusta (Recibidos)
    293
    Gracias en cuanto pueda probaré tu solución. El código no tiene porque tener sentido son tareas de informática y el ejercicio dice que hagamos una suma de dos números en POO, para practicar y eso xk hacer sumas y demás usando este paradigma es complicarse la vida

    Enviado desde mi GT-I9502 usando Tapatalk now Free

  4. #4
    ForoParalelo: Miembro Avatar de J.M.Statham
    Registro
    07 abr, 13
    Mensajes
    2,696
    Me gusta (Dados)
    803
    Me gusta (Recibidos)
    434
    Cita Iniciado por Domovik Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    Gracias en cuanto pueda probaré tu solución. El código no tiene porque tener sentido son tareas de informática y el ejercicio dice que hagamos una suma de dos números en POO, para practicar y eso xk hacer sumas y demás usando este paradigma es complicarse la vida

    Enviado desde mi GT-I9502 usando Tapatalk now Free
    Con lo de que no tiene sentido, me refiero al return. Te dejo aquí unos ejemplos haciendo la suma de distinta manera.

    Código:
    class sumaAB():
        def __init__(self, numa, numb):
            self.suma = numa + numb
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB(5, 8)
            print s.suma
    Código:
    class sumaAB():
    	def suma(self):
    		return (self.A + self.B)
        	def __init__(self, numa, numb):
            	self.A = numa
    		self.B = numb
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB(34, 8)
            print s.suma()
    Código:
    class sumaAB():
    	def suma(self):
    		return (self.A + self.B)
        	
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB()
    	s.A = 5
    	s.B = 47
            print s.suma()

  5. #5
    AutoBanned Avatar de Domovik
    Registro
    25 abr, 13
    Mensajes
    1,106
    Me gusta (Dados)
    86
    Me gusta (Recibidos)
    293
    Cita Iniciado por J.M.Statham Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    Con lo de que no tiene sentido, me refiero al return. Te dejo aquí unos ejemplos haciendo la suma de distinta manera.

    Código:
    class sumaAB():
        def __init__(self, numa, numb):
            self.suma = numa + numb
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB(5, 8)
            print s.suma
    Código:
    class sumaAB():
    	def suma(self):
    		return (self.A + self.B)
        	def __init__(self, numa, numb):
            	self.A = numa
    		self.B = numb
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB(34, 8)
            print s.suma()
    Código:
    class sumaAB():
    	def suma(self):
    		return (self.A + self.B)
        	
    
    if __name__ =='__main__':
        if True:            
            s = sumaAB()
    	s.A = 5
    	s.B = 47
            print s.suma()
    Gracias la segunda respuesta me ha ayudado ya me funciona, las otras no las he probado pero supongo que funcionaran bien, he usado he esa y la he modificado un poco para ponerla a mi gusto pero funciona igualmente.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •