On Jun 13, 11:48 am, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] schrieb: > > > > > On Jun 13, 11:21 am, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > >> [EMAIL PROTECTED] 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. > > I don't fully understand that. But if your code is uniform and looks > like the above, it appears that > > for o in xrange(25): > checkboxes.append(xrc.XRCCTRL(self.panel01, 'Checkbox%i' % o)) > > is the way to go. > > Diez
Thank you, this is much closer to where I need to be... The issue is (and this is the part that you don't know, because I didn't tell you!) is that I later need to call methods on "self.checkbox1", for instance: self.checkbox1.GetValue() to determine if the box is checked or not. I should have included that piece in the initial problem description; my apologies. -- http://mail.python.org/mailman/listinfo/python-list