J'ai ce code:entrées de la liste Python sont remplacées par la dernière entrée en annexe
def __parse(self):
for line in self.lines:
r = Record(line)
self.records[len(self.records):] = [r]
print self.records[len(self.records)-1].getValue() # Works fine!
print self.record[0].getValue() # Gives the same as
print self.record[1].getValue() # as
# ... and so on ...
print self.record[len(self.record)-1].getValue()
maintenant ce qu'il doit faire est de faire des disques de lignes de texte. Mais quand j'accède à la liste après que la boucle for ait été complétée, tous les enregistrements donnent les mêmes résultats pour les méthodes que j'appelle. Lorsque j'accède à un enregistrement à l'intérieur de la boucle for-right juste après qu'il a été ajouté, c'est le bon, donc l'enregistrement init ne peut pas être la faute. Non, c'est absolument certain que les lignes que je mets sont différentes! Quelqu'un at-il une idée pourquoi cela arrive? L'aide serait très appréciée!
Pourquoi ne faites-vous pas juste self.records.append (r)? – FogleBird
Pourriez-vous nous montrer comment 'Record' est défini? Si 'Record' stocke' line' comme un attribut de classe plutôt qu'un attribut d'instance, cela peut expliquer le problème. – unutbu
Vous ne vérifiez que le * dernier * enregistrement dans la boucle. Qu'en est-il des valeurs précédentes? –