On Jul 12, 7:08 pm, Marcus Low <[EMAIL PROTECTED]> wrote: > Can someone explain to me, why the behaviour below is different when u > remark "lister" and unremark "self.lister"? > > #-------------------------------------------------------------- > class abc : > # remark this later and unremark "self.lister" > lister = [] > > def __init__ (self, val): > #self.lister = [] > self.lister.append(val) > > #-------------------------------------------------------------- > globallist = [] > #-------------------------------------------------------------- > def test () : > global l > for x in range(10) : > o = abc(x) > globallist.append(o) > o = "" > > for i in globallist : > print i.lister > > #-------------------------------------------------------------- > test() > #--------------------------------------------------------------
The way it's written, you're appending to a list associated with the class itself, which is created only once, then printing out that list 10 times. After you uncomment and comment the specified lines (this is the usual term, rather than "remark"), you are using a list that is associated with the actual object, then printing out the 10 different lists. Hope that's clear enough. --Buck -- http://mail.python.org/mailman/listinfo/python-list