[pyar] Como puedo no repetir código?
Natalia Bidart
nataliabidart en gmail.com
Mar Mayo 24 10:42:15 ART 2011
2011/5/24 Martin Volpe <martin.volpe en gmail.com>:
> Hola lista,
>
> Estoy desarrollando un programa y tengo datos que casi siempre vienen de a
> tres, es decir, los guardo de a tres, los gráfico de a tres, los envio de a
> tres, siempre juntos.
> hasta ahora algo:
>
> #[...]
> self.graph_ph = Graph()
> self.graph_o2 = Graph()
> self.graph_temp = Graph()
>
> self.contenedor.add(self.graph_ph.canvas)
> self.contenedor.add(self.graph_o2.canvas)
> self.contenedor.add(self.graph_temp.canvas)
> #[...]
GRAPH_NAMES = ('ph', 'o2', 'temp')
for name in GRAPH_NAMES:
obj = Graph()
setattr(self, 'graph_%s' % name, obj)
self.container.add(obj.canvas)
> Alguien tiene alguna idea de como automatizar esto?
>
> en otra parte del código lo resolví así:
>
> #[...]
> def actualizar_gui(self, gui):
> for i in self:
> execute = "gui.%s_label.set_text('%s')" % (i, self[i])
> eval(execute)
> #[...]
No uses eval!!!
Usá metaprogramación, así:
def update_gui(self, gui):
for name in GRAPH_NAMES:
getattr(gui, '%s_label' % name).set_text('whatever')
Se entiende?
More information about the pyar
mailing list