python - object in lijst overschreven

Status
Niet open voor verdere reacties.

nosmaS

Gebruiker
Lid geworden
22 mrt 2007
Berichten
77
Hoi

Ik wil een object (dprObject) vullen met dprVariables
deze variables bevatten ook weer een lijst waaraan waarden kunnen worden toegevoegd

het probleem is dat hij de waarden niet naar een specifieke variabele schrijft, maar naar allemaal

In dit geval heb ik 2 variables (score en position)

de output die ik krijg is
score: 5, 6, 3, 4,
position: 5, 6, 3, 4,
maar ik zou graag hetvolgende zien
score: 5, 6,
position: 3, 4,


Code:
#!/usr/bin/python3

def main(): 
    d = dprObject() #new dpr object
    score = dprVariable(d, "score") #new dpr variable
    score.set(5) #set value
    score.set(6)
    
    position = dprVariable(d, "position")
    position.set(3)
    position.set(4)
    
    print(d) #show all values from d
    print("done")
        
class dprObject:
    var = [] #list with all variables
    t = 0 #time
    def __init__(self):
        pass
    
    def __str__(self):#return all variables 
        toReturn = ""
        for v in self.var:
            toReturn += v.toString() + "\n"
        return toReturn
    
    def tick(self):
        self.t += 1
        
    def addVariable(self,v):#add a variable to this object
        self.var.append(v)
        

class dprVariable:
    name = ""
    value = None
    val = [] #list with all previous values
    
    def __init__(self,d,name):
        self.name = name
        d.addVariable(self)
    
    def __str__(self):
        return self.toString()
        
    def toString(self):
        toReturn = self.name + ": "
        for v in self.val:
            toReturn += str(v) + ", "
        return toReturn
    
    def set (self, value):
        self.value = value
        self.val.append(value)  
  
if __name__ == "__main__":
    main()


Ik werk met Eclipse en PyDev

Iemand een idee wat ik over het hoofd zie?
zoals je aan de code ziet werk ik nog niet zolang met python

alvast bedankt
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan