Re: Class v. Instance variables in Python

On Nov 10, 2008, at 2:44 PM, Zane Selvans wrote:
> However, one (and only one) of these instance variables is behaving
> mysteriously like a class variable: all instances of the class are
> sharing a single copy of the variable, located at the same place in
> memory.
>
> Is there a common mistake that can result in this behavior, that
> doesn't involve using class variables - I really have absolutely
> nothing defined in the class except for methods. The problem shows
> up regardless of how I name the instance variables (i.e. using name
> mangling __names or not). The problematic variable consists of a
> list of objects of type Lineament (the same object class as the one
> that's giving me problems).

How are you creating your list? You need to make sure that each
instance creates its very own list object, something like:

self.foo = []

rather than grabbing a reference to some shared list instance, such as
one defined as a default argument to your __init__ method.

Share This Page

Welcome to The Coding Forums!

Welcome to the Coding Forums, the place to chat about anything related to programming and coding languages.

Please join our friendly community by clicking the button below - it only takes a few seconds and is totally free. You'll be able to ask questions about coding or chat with the community and help others.
Sign up now!