Mejorar este código - 2a parte

Arnau Sanchez pyarnau en gmail.com
Vie Mayo 23 22:54:13 CEST 2008


eber_ramirez en ltv.org.mx escribió:

 > encontré particularmente complicado el simplificar esta porción del 
código.

FR=float(self.FR_t.get())
b=float(self.b_t.get())
d=float(self.d_t.get())
fc=float(self.fc_t.get())
fy=float(self.fy_t.get())
As=float(self.As_t.get())

Hay varias formas de plantear esto... yo agruparía las entries en un 
único objeto, ya sea una clase/struct o un diccionario; te muestro aquí 
como se podría hacer con un diccionario, es lo más simple. Pongamos que 
este diccionario sea "self.entries" y que contiene pares (nombre, 
entry). Podemos obtener los valores de las variables así:

variables = dict((k, float(entry.get())) for (k, entry) in 
self.entries.iteritems())

y luego en los cálculos usarlas tal que así:

variables["fc_t"] * variables["As_t"]

En la solución con clase/struct accederías de forma más elegante:

variables.fc_t * variables.As_t

Ver http://pythonesfaq.k-rolus.net/#index33h3

pd: no es necesario/conveniente que cambies el nombre al hilo, mejor que 
las conversaciones queden agrupadas.
_______________________________________________
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