On Jul 12, 6:23 pm, Jeremy Lynch <[EMAIL PROTECTED]> wrote: > Hello, > > Learning python from a c++ background. Very confused about this: > > ============ > class jeremy: > list=[] > def additem(self): > self.list.append("hi") > return > > temp = jeremy() > temp.additem() > temp.additem() > print temp.list > > temp2 = jeremy() > print temp2.list > ============== > The output gives: > ['hi','hi'] > ['hi','hi'] > > Why does adding items to one instance produce items in a separate > instance? Doesn't each instance of jeremy have its' own "list"? > > Many thanks for clearing up this newbie confusion. > > Jeremy.
You are defining the list in the class context and so it becomes a class field/member. For defining instance members you need to always prefix those with self (this) in the contexts it is available (f.e. in the instance method context). bests, ./alex -- .w( the_mindstorm )p. -- http://mail.python.org/mailman/listinfo/python-list