Someone enlightened me

M

Marcus Low

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()
#--------------------------------------------------------------
 
B

bukzor

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top