On Jan 11, 2:20 pm, Steven D'Aprano <st...@remove-this- cybersource.com.au> wrote: > On Sun, 11 Jan 2009 14:06:22 -0800, killsto wrote: > > I have a class called ball. The members are things like position, size, > > active. So each ball is an object. > > > How do I make the object without specifically saying ball1 = ball()? > > Because I don't know how many balls I want; each time it is different. > > > The balls are to be thrown in from the outside of the screen. I think > > you get that is enough information. > > > This doesn't directly pertain to balls, I have wanted to do something > > like this for many different things but didn't know how. > > > I would think something like: > > > def newball(): > > x = last_named_ball + 1 > > ball_x = ball(size, etc) # this initializes a new ball return ball_x > > > But then that would just name a ball ball_x, not ball_1 or ball_2. > > This is the TOTALLY wrong approach. > > Instead of having named balls, have a list of balls. > > balls = [] # no balls yet > balls.append(Ball()) # one ball comes in from off-screen > balls.append(Ball()) # and a second > del balls[0] # the first ball got stuck in a tree > balls = [] # all the balls were swept up in a hurricane and lost > balls = [Ball(), Ball(), Ball(), Ball()] # four balls come in > balls.append(Ball()) # and a fifth > for b in balls: > print b.colour # print the colour of each ball > > and so forth. > > -- > Steven
Thanks. That makes sense. It helps a lot. Although, you spelled color wrong :P. Just curious, is there another way? How would I do this in c++ which is listless IIRC. -- http://mail.python.org/mailman/listinfo/python-list