[Python-de] Re: [wxPython] wie Werte an Controls zuweisen, auslesen

Andreas Kaiser akaiser at vocote.de
Don Apr 29 16:02:20 CEST 2004


Hallo Diez,

Diez B. Roggisch schrieb:

> zb so:
> 
> for name in ["firm_nummer", "firm_name", "firm_vorname"]: 
>     setattr(self, name, wx.xrc.XRCCTRL(self.nb1pane1, name)
> 
[...]
> 
> auch hier kannst du grundsaetzlich den setattr/getattr Kram machen,
> durch gleiche Namen erhoeht sich dann die deklarativitaet:
> 
> for key, value in res.items():
 >     for name in ["firm_nummer", "firm_name", "firm_vorname"]:
>          control = getattr(self, name) 
>          control.SetValue(value)
> 
Der Hinweis auf setattr / getattr war es, welchen ich benötigte. Habe
damit bis jetzt selten gearbeitet. Wie beschrieben funktioniert das
ganze jetzt prima. Außerdem ist es leichter zu pflegen und leichter lesbar.

> Falls du auf typ-probleme stoesst, musst du da noch coercions
> einbauen, zb durch sowas hier:
> 
> coercers = {'firm_nummer' : str}
> 
Das mit den coercions habe ich nicht so recht verstanden. Gibt es da
irgendwelche Beispiele im Net? Habe beim Googlen nicht s brauchbares
gefunden.

> Dann aendert sich die setvalue-Zeile so:
> 
> control.SetValue(coercers.get(name, lambda x: x)(value))
> 

Eine Lösung für mein Problem habe ich nun gefunden.

Danke!
Andreas