Iterate creating variables?

tdahsu at gmail.com tdahsu at gmail.com
Fri Jun 13 11:43:28 EDT 2008


On Jun 13, 11:21 am, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> tda... at gmail.com schrieb:
>
>
>
> > I have twenty-five checkboxes I need to create (don't ask):
>
> > self.checkbox1 = ...
> > self.checkbox2 = ...
> > .
> > .
> > .
> > self.checkbox25 = ...
>
> > Right now, my code has 25 lines in it, one for each checkbox, since
> > these are all variables.
>
> > Is there a way to write a loop so that I can have fewer lines of code
> > but still keep the variables?
>
> > I've tried:
>
> > for o in xrange(25):
> >     self.checkbox[o] = ...
>
> > which didn't work, and
>
> > for o in xrange(25):
> >     self.checkbox[''%d'%(o)] = ...
>
> > which also didn't work.
>
> > Both give the error message: "Attribute error: Main.App has no
> > attribute "checkbox"", which clearly indicates that I'm not keeping
> > the "variability" aspect I want.
>
> > Is there a way?
>
> Keep either a list or dictionary around. Like this:
>
> checkboxes = []
>
> for o in xrange(25):
>      checkboxes.append(....create a checkbox...)
>
> self.checkboxes = checkboxes
>
> Diez

I don't understand... how do I then complete the assignment statement?

If I have:

self.checkbox1 = xrc.XRCCTRL(self.panel01, 'Checkbox1')
.
.
.
self.checkbox25 = xrc.XRCCTRL(self.panel01, 'Checkbox25')

using your method, wouldn't I still need to figure out my original
question?

If I have a list of checkboxes, then I'll have:

checkboxes = [checkbox1, checkbox2 ... checkbox25]

in which case I'd still need to figure out how to get the variable at
the end of checkbox to do the rest of the "=" statement.

Or am I missing something?

(I'm guessing that's likely!)

Thanks.



More information about the Python-list mailing list