Bonjour,
je patoge depuis 2 jours dans un bout de code qui devrait être simple, mais je n'arrive pas à m'en sortir.
J'ai créé une classe individu dans laquelle j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 class Individual: """Cette classe possède un attribut de classe qui s'incrémente à chaque fois que l'on crée un objet de ce type""" id_ind = 0 # Le compteur vaut 0 au départ def __init__(self,age, sexe): """À chaque fois qu'on crée un objet, on incrémente le id_ind""" Individual.id_ind = Individual.id_ind + 1 Individual.age = int(age) * 12 Individual.sexe = sexe def __str__(self): """Méthode appelée lors d'une conversion de l'objet en chaîne""" return "{0} {1} {2} {3}".format(self.id_ind, self.age, self.sexe) class Obese(Individual): """Classe définissant un individu étudié dans les simulations de l'obésité. Elle hérite de la classe Individual""" def __init__(self, age, sexe, ob_indicator): Individual.__init__(self, age, sexe) self.id_obese = Individual.id_ind self.ob_indicator = ob_indicator def getIDobese(self): return self.id_obese def get_age(self): return (self.age) def aging (self): self.age = self.age+1 def __str__(self): """Méthode appelée lors d'une conversion de l'objet en chaîne""" xx= self.age/12 return " l'individu {0}: {1} ans, {2}.".format(self.id_obese, str(xx), self.ob_indicator)
Par la suite,j'ai récupéré ces données à partir d'un fichier csv, et je les ai mis dans une liste:
jusque là tout va bien, j'ai une liste d'individus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for i in xrange(1, len(liste)): sexe = liste[i][2] age = liste[i][3] ob_indicator = liste[i][4] personne = concept.Obese(age, sexe, ob_indicator) list_individuals.append(personne.getObese())
Le problème, c'est que je ne veux pas d'une liste d'individus, mais une liste d'objets individus, de telle sorte que si j'écris
l'age de l'individu s'incrémente automatique. Or tel que je l'ai déclaré, il s'agit d'un tuple ne contenant que les valeurs des paramètres de chaque objet, mais pas l'objet lui même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 list_individuals[0].aging()
en faisant des recherches, j'ai trouvé que je devrais faire:
mais je ne sais pas si c'est la bonne piste ou pas ? et je ne vois pas comment je vais instancier les valeurs de chaque objet de la liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part list_individuals= [concept.Obese()for i in (range(nombre_lignes_fichier_lu))]
Quelqu'un aurait-il une idée la dessus ?
Partager