Puzzled by behaviour of class with empty constructor

Tim Rau bladedpenguin at gmail.com
Sat Jan 26 00:33:48 EST 2008


On Jan 25, 5:54 pm, dbas... at gmail.com wrote:
> On Jan 25, 5:46 pm, Bjoern Schliessmann <usenet-
>
>
>
> mail-0306.20.chr0n... at spamgourmet.com> wrote:
> > dbas... at gmail.com wrote:
> > > print x.ends,y.ends,z.ends
> > > #############
> > > Running the following code outputs:
> > >>>> [(0, 2)] [(0, 2)] [(0, 2)]
>
> > > Can anyone explain this?
>
> > Yes. You bound a single list to the name "ends" inside the class.
> > This name is shared by all instances.
>
> > If you want the instances to each have separate lists, delete
> > the "ends" definition from class declaration and insert "self.ends
> > = []" into __init__.
>
> > I also suggest you to have a look at the tutorial.
>
> > Regards,
>
> > Björn
>
> > --
> > BOFH excuse #49:
>
> > Bogon emissions
>
> Björn,
>
> Thanks for the help.  I had misguidedly defined the members of all of
> my classes as in the example above; I never noticed the issue with any
> of the others because they did not have empty constructors.
>
> Thanks again for the correction.

Yeah! thanks all. I did not realize the distinction either.



More information about the Python-list mailing list