Foros del Web » Programando para Internet » Python »

ayuda con una clase

Estas en el tema de ayuda con una clase en el foro de Python en Foros del Web. tengo primero el archivo(modulo) pepito.py que tiene estas funciones: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original import math     class poligonos ( ) :   ...
  #1 (permalink)  
Antiguo 15/01/2011, 13:06
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 11 meses
Puntos: 1
Pregunta ayuda con una clase

tengo primero el archivo(modulo) pepito.py que tiene estas funciones:

Código Python:
Ver original
  1. import math
  2.  
  3.  
  4. class poligonos():
  5.         def area_rectangulo(self):
  6.             alto=input("ingresa largo\n")
  7.             ancho=input("ingresa ancho\n")
  8.             area=alto*ancho
  9.             print "el area del rectangulo es:", area
  10.  
  11.         def area_cuadrado(self):
  12.             lado=input("ingresa el largo del lado\n")
  13.             area=lado**2
  14.             print "el area del cuadrado es:", area
  15.        
  16.  
  17.         def circunferencia(self):
  18.             diametro=input("ingrese diametro de circunferencia\n")
  19.             circunferencia=diametro*math.pi
  20.             print "la longitud de la circunferencia del circulo es:", circunferencia
  21.  
  22. r=poligonos()
  23. r.area_rectangulo()
  24. r.area_cuadrado()
  25. r.circunferencia()

Despues tengo el modulo pepito2.py que es asi:


Código Python:
Ver original
  1. from pepito import poligonos
  2.  
  3. class imprimirmedicion:
  4.     def hacercalculo(self):
  5.         r=poligonos()
  6.         r.circunferencia


bueno esto me muestra en pantalla, primero la funcion area_rectangulo, despues area_cuadrado y despues circunferencia. pero lo que quiero es que si pongo esto:

Código Python:
Ver original
  1. r=poligonos()
  2. r.circunferencia
me salga solo circunferencia o solo la funcion area_cuadrado etc espero se entienda, y espero que se pueda hacer.

Última edición por AlvaroG; 17/01/2011 a las 05:35 Razón: resaltado de código
  #2 (permalink)  
Antiguo 17/01/2011, 05:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda con una clase

Pues es simple: ¡elimina del módulo la creación del objeto r y las llamadas a sus métodos!
  #3 (permalink)  
Antiguo 17/01/2011, 12:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda con una clase

es ke si elimino el objeto r del modulo pepito.py no se ejecutan las funciones. lo que queria yo es referenciar en el segundo archivo solo una funcion del primer archivo y ke me lo imprima. sin tener que tocar el primer archivo. entendes?
  #4 (permalink)  
Antiguo 17/01/2011, 12:41
 
Fecha de Ingreso: abril-2010
Ubicación: Manizales
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: ayuda con una clase

no se si este sea tu problema pero mira:

esta parte :
Código Python:
Ver original
  1. r=poligonos()
  2. r.area_rectangulo()
  3. r.area_cuadrado()
  4. r.circunferencia()

ponla dentro de un condicional:
Código Python:
Ver original
  1. if (__name__ == '__main__'):
  2.     r=poligonos()
  3.     r.area_rectangulo()
  4.     r.area_cuadrado()
  5.     r.circunferencia()

si así te soluciona el problema me avisas para explicarte porque
__________________
pensando en Bytecodes
  #5 (permalink)  
Antiguo 17/01/2011, 13:18
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda con una clase

no me soluciono el problema.
yo kiero hacer esto:

si en el segundo archivo pongo

c=poligonos()
c.circunferencia()

se ejecuta en el segundo archivo la funcion del primero. si pongo esto y saco lo anterior

c=poligonos()
c.area_cuadrado()
se ejecuta esa funcion y asi sucesivamente gracias por responderme de todas formas si hay otra forma de hacer eso les agradeceria la ayuda
  #6 (permalink)  
Antiguo 17/01/2011, 13:44
 
Fecha de Ingreso: abril-2010
Ubicación: Manizales
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: ayuda con una clase

lo que sucede es que al importar el módulo pepito.py estas cargando la clase y el interprete de una vez esta ejecutando las líneas 22 a 25, trata quitando esas líneas haber si te funciona
__________________
pensando en Bytecodes
  #7 (permalink)  
Antiguo 17/01/2011, 14:19
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 11 meses
Puntos: 1
Respuesta: ayuda con una clase

no entiendo mucho ya se me puso tosca la cabeza
  #8 (permalink)  
Antiguo 17/01/2011, 15:41
 
Fecha de Ingreso: abril-2010
Ubicación: Manizales
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: ayuda con una clase

mira es sencillo, al momento de importar el módulo pepito desde el módulo pepito2, lo que hace el interprete de python es poner disponibles las clases y además ejecutar el código que no tiene ningún tipo de indentación, en tu ejemplo las líneas 22, 23, 24, 25 de el módulo pepito.py

por eso cada vez que corres el segundo archivo se ejecutan las 3 cosas, creo que este es el problema que tienes, si haces un if esa porción de código si se esta llamando al módulo directamente y no desde otro
__________________
pensando en Bytecodes
  #9 (permalink)  
Antiguo 19/01/2011, 12:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 162
Antigüedad: 13 años, 11 meses
Puntos: 1
Pregunta gracias

gracias por la ayuda pero ya lo logre si ya me salio es asi.

pepito.py
import math


class poligonos():
def area_rectangulo(self):
alto=input("ingresa largo\n")
ancho=input("ingresa ancho\n")
area=alto*ancho
print "el area del rectangulo es:", area
print "gracias por participar"

def area_cuadrado(self):
lado=input("ingresa el largo del lado\n")
area=lado**2
print "el area del cuadrado es:", area


def circunferencia(self):
diametro=input("ingrese diametro de circunferencia\n")
circunferencia=diametro*math.pi
print "la longitud de la circunferencia del circulo es:", circunferencia

pepito2.py

from mente import poligonos

class imprimirmedicion:


def hacercalculo(self):
p=poligonos().circunferencia()



d=imprimirmedicion()
d.hacercalculo()

ahi me funciona gracias por lo del import eso me ayudo a darme cuenta que hacia con ese import

Etiquetas: clase
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 06:43.