Object help

killsto kiliansto at gmail.com
Sun Jan 11 18:49:27 EST 2009


On Jan 11, 2:20 pm, Steven D'Aprano <st... at 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.



More information about the Python-list mailing list