Lists in classes

Alex Popescu the.mindstorm.mailinglist at gmail.com
Thu Jul 12 17:47:20 CEST 2007


On Jul 12, 6:23 pm, Jeremy  Lynch <jeremy.ly... at gmail.com> 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.





More information about the Python-list mailing list