[EMAIL PROTECTED] schrieb: > Hello, > > I have a class called 'Axis' that I use as a base class for several > types of axes that can be created by a grid generation program that I > have written: equally-spaced grids, logarithmic grids, etc. In any > case, if I use this base class by itself, I see some puzzling > behaviour: > ############# > class Axis: > ends = [] > N = None > def __init__(self): > pass > > x = Axis() > y = Axis() > z = Axis() > > x.ends.append((0,2)) > > print x.ends,y.ends,z.ends > ############# > Running the following code outputs: >>>> [(0, 2)] [(0, 2)] [(0, 2)] > > Can anyone explain this?
It's simple - you didn't create an instance-variable, but instead a class-variable. You need to do this: class Axis: def __init__(self): self.ends = [] Diez -- http://mail.python.org/mailman/listinfo/python-list