RE: [Python-es] Re: Mejorar este código - 2a parte

eber_ramirez en ltv.org.mx eber_ramirez en ltv.org.mx
Sab Mayo 24 19:03:36 CEST 2008


> Aquí pongo el link con la versión del código ajustado, siguiendo las 
> amables recomendaciones que me dio Arnau en el mensaje del 8 de mayo

Creo que http://python.pastebin.com/ seria un lugar mas comodo para poner el codigo. Un par de comentarios:

En lugar de
'AsMin = %s cm2\n' % str(round(x.AsMin, 2)) es mas comodo usar 'AsMin = %.2f cm2\n' % x.AsMin

La funcion ER_float (que ignora todos los errores y devuelve 0) no me convence demasiado. Si el usuario ingresa 1OO va a calcular como si fuera un 0 - y sin avisar. No parece correcto. Lo que hay que hacer es validar (en la interfase) todos los campos ingresados, y mostrar un error si no son validos (antes siquiera de empezar a calcular).

El objeto mas importante -o casi- de todo el programa se llama 'x', a secas, y es global... Podrias darle un nombre mejor que esa mísera letra, no? Y pasarselo a la interfaz para que lo tenga disponible sin necesidad de que sea global.

En esta funcion:
    def MRSAC(self, aa = 'DF', bb=0.9, cc=20.0,
               dd=40.0, ee=4200.0, ff=250.0, gg=2.54):
         """ Metodo para MR sin Acero a Compresion
         El orden correcto de los parametros es Reglamento como string
         ('DF' o 'ACI'), FR adimensional, b en cm, d en cm, fy en kg/cm2,
         fc en kg/cm2 y finalmente As en cm2. El calculo de MR es en T-m.
         Todos los numeros se manejan como float """

         # Capturamos cualquier valor que el usuario haya dado
         self.codigo = aa
         self.FR = bb
         self.b = cc
         self.d = dd
         self.fy = ee
         self.fc = ff
         self.As = gg

¿porque los argumentos tienen esos nombres sin sentido? Por lo menos podrias usar los mismos nombres con que se guardan internamente (codigo,
FR...) De esa forma tambien se pueden pasar por nombre, y no hace falta el comentario sobre "el orden correcto de los parametros". Ademas, cualquier editor decente te muestra esos nombres al auto-completar una llamada, asi que es importante que sean representativos.

--
Gabriel Genellina

--------------------------------------------------------------------------

Muchas gracias, Gabriel. Voy a corregir mi programa. Tienes razón con los nombres sin sentido y la mísera x.  Solo me queda la duda de por qué el programa no calcula con cero cuando le doy 100, así como me dices, como si fuera un entero y por eso devuelva cero la función ER_float().  Hace los cálculos con 100 y no con cero. Curioso, no? Además las etiquetas fy y f'c están en lugares erróneos. Ya hice la corrección. En cuanto tenga los ajustes les mando el link nuevamente.
Muchas gracias, es un placer aprender Python con todos ustedes en esta lista.

Eber


Este correo electrónico y cualquier archivo transmitido con él son confidenciales y son solamente para el uso del individuo o entidad a la que van dirigidos. Si recibió este correo electrónico por error por favor notifique al administrador del sistema. Este mensaje contiene información confidencial y es dirigido a la persona implicada. Si usted no es esa persona no debería diseminar, distribuir o copiar este mensaje de correo electrónico.
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.
_______________________________________________
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