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

eber_ramirez en ltv.org.mx eber_ramirez en ltv.org.mx
Vie Mayo 23 23:09:33 CEST 2008


> 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.


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

Arnau, nuevamente muchas gracias por tus comentarios. Sigo en el proceso de aprendizaje de Python y del uso de la lista.
Lo implementaré y te comento los resultados.

---------------------------------------------------
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