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 -- http://mail.python.org/mailman/listinfo/python-list