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:

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())
jusque là tout va bien, j'ai une liste d'individus.
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
list_individuals[0].aging()
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.


en faisant des recherches, j'ai trouvé que je devrais faire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
list_individuals= [concept.Obese()for i in (range(nombre_lignes_fichier_lu))]
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.

Quelqu'un aurait-il une idée la dessus ?