Object containing a list of objects.
cocolombo
cocolombo at gmail.com
Sat Aug 28 13:48:14 EDT 2010
Hello.
I am putting objects (test) into a container object (tests) and the
test object is also a container for a another list of object
(scores).
Problem is that all instances of class tests have the same value.
To illustrate:
class score(object):
val = 0
def __init__(self, val):
self.val = val
def __str__(self):
return str(self.val) + "\n"
class test(object):
listOfScores = []
def __str__(self):
ret = ""
for s in self.listOfScores:
ret += str(s)
return ret
class tests(object):
listOfTest = []
def __str__(self):
ret = ""
for t in self.listOfTest:
ret += str(t)
return ret
Now I run the script
:
======================
score1 = score(10)
score2 = score(20)
score3 = score(30)
score4 = score(40)
test1 = test()
test2 = test()
test1.listOfScores.append(score1)
test1.listOfScores.append(score2)
test2.listOfScores.append(score3)
test2.listOfScores.append(score4)
theTests = tests()
theTests.listOfTest.append(test1)
theTests.listOfTest.append(test2)
print theTests.listOfTest[0]
print theTests.listOfTest[1]
==============
This is the data structure I am EXPECTING:
theTests
----test1
---score1=10
---score2=20
----test2
---score3=30
---score4=40
But what I get is this:
theTests
----test1
---score1=10
---score2=20
---score3=30
---score4=40
----test2
---score1=10
---score2=20
---score3=30
---score4=40
What is wrong ?
Thanks
More information about the Python-list
mailing list