dynamically created names / simple problem

Robert Bossy Robert.Bossy at jouy.inra.fr
Tue Mar 25 16:20:00 CET 2008


Robert Bossy wrote:
> Jules Stevenson wrote:
>   
>> Hello all,
>>
>> I'm fairly green to python and programming, so please go gently. The 
>> following code
>>
>> for display in secondary:
>>
>> self.("so_active_"+display) = wx.CheckBox(self.so_panel, -1, "checkbox_2")
>>
>> Errors, because of the apparent nastyness at the beginning. What I’m 
>> trying to do is loop through a list and create uniquely named wx 
>> widgets based on the list values. Obviously the above doesn’t work, 
>> and is probably naughty – what’s a good approach for achieving this?
>>
>>     
> Hi,
>
> What you're looking for is the builtin function setattr:
> http://docs.python.org/lib/built-in-funcs.html#l2h-66
>
> Your snippet would be written (not tested):
>
> for display in secondary:
>
> setattr(self, "so_active_"+display, wx.CheckBox(self.so_panel, -1, 
> "checkbox_2"))
Damn! The indentation didn't came out right, it should be:

for display in secondary:
    setattr(self, "so_active_"+display, wx.CheckBox(self.so_panel, 
-1,"checkbox_2"))

RB



More information about the Python-list mailing list