problem manipulating a list belonging to a class

Terry Reedy tjreedy at udel.edu
Mon Nov 23 04:43:01 EST 2009


Marc Leconte wrote:
> Dear all,
> 
> I have a problem with the following code (ubuntu 8.04, Python 2.5.2):
> 
> class Toto(object):
> 	def __init__(self, number, mylist=[]):
> 		self.number=number
> 		self.mylist=mylist
> 		pass
> 	pass
> 
> listA=Toto(number=1)
> listB=Toto(number=2)
> 
> listA.mylist.append(5)
> print "1) ", listA.mylist
> print "2) ", listB.mylist
> 
>>> 1) [5]
>>> 2) [5]
> 
> I would have expected
>>> 1) [5]
>>> 2) []
> 
> Thanks in advance for advice,

Read the Python FAQ and or the reference manual section on def 
statements (function definition) which specifically has a paragraph with 
a bold-face statement explaining this.






More information about the Python-list mailing list