To test some theories, I created a new class variable, an int named N1, which is not mutable. So my Stock class now looks as follows:
class Stock(object): NStocks = [] #Class variables N1 = 0 def __init__(self, id, returnHistory): self.id = id self.retHist = returnHistory Stock.N1 += 1 for i in range(len(returnHistory)): if len(Stock.NStocks) <= i and retHist[i] != '': Stock.NStocks.append(1) elif len(Stock.NStocks) <= i and retHist[i] == '': Stock.NStocks.append(0) elif retHist[i] != '': Stock.NStocks[i] +=1 I expect Stock.N1 to reset to zero at each call to simulation(), but it does not - it keeps incrementing! I then added a line to simulation( ) that deletes all the stocks at the end of each simulation (see below). You guessed it - no change! NStocks and N1 keep increasing! At this point I am thoroughly mystified. What gives? def simulation(N, par1, par2, idList, returnHistoryDir): port = [] for i in range(N): port.append( Stock(idList[i], returnHistoryDir[idList[i]] ) del port[:] results = ...... print results. -- http://mail.python.org/mailman/listinfo/python-list