On Jun 13, 11:34 am, "Reedick, Andrew" <[EMAIL PROTECTED]> wrote: > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:python- > > [EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] > > Sent: Friday, June 13, 2008 11:11 AM > > To: [EMAIL PROTECTED] > > Subject: Iterate creating variables? > > > 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? > > > I appreciate any and all answers! > > Either store the checkboxes in an array or hash/dictionary. If that's > not practical, then > You can use strings to build the code and use eval to execute the string > as code. Ex: > > for i in range(10): > code = "%d + %d" % (i, i) > print eval(code)
Don't do this. You want for idx in range(10): setattr(self, 'checkbox_%i' % idx) -- http://mail.python.org/mailman/listinfo/python-list