Bien,<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
    for starters please get rid of all those set_ methods. They are<br>
doing nothing, it&#39;s not pythonic. Just assign the value straight away.<br>
e.g.: from &quot;&quot;&quot; item01.set_prix(&quot;999.99&quot;) &quot;&quot;&quot;  to &quot;&quot;&quot; item01.prix = </blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

&quot;999.99&quot; &quot;&quot;&quot;<br></blockquote><div><br>  <span style="color: rgb(255, 0, 0);">  Our teacher showed us this method and in our exercise we had to copy the teacher&#39;s code and modify the data to fit our concept </span><br>
<br>    <span style="color: rgb(255, 0, 0);">But thks I found my error but what did you say about th decimal module</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">    we have to keep in mind that my exercise is for an introductory course in python I am not good, I am  trying to learn at my best</span>.<br>
<br>Here&#39;s my new code( can you please tell me if it is okay)<br><br>class Magasin:<br>    &quot;&quot;&quot;<br>    Le concept magasin pour la gestion d&#39;inventaire des items de golf.<br>    &quot;&quot;&quot;<br>
    def __init__(self, nom =&quot;&quot;, items =[] ):<br>        self.nom = nom<br>        self.items = items<br><br>    def set_nom(self, nom):<br>        self.nom = nom<br><br>    nom = property(None, set_nom)<br><br>    def set_items(self, items):<br>
        self.items = items<br><br>    items = property(None, set_items)<br><br>    def __str__(self):<br>        return self.nom<br><br>class Item:<br>    &quot;&quot;&quot;<br>    Le concept item pour la gestion d&#39;inventaire des items de golf.<br>
    &quot;&quot;&quot;<br>    def __init__(self, nom =&quot;&quot;, prix =&quot;&quot;):<br>        self.nom = nom<br>        self.prix = prix<br><br>    def set_nom(self, nom):<br>        self.nom = nom<br><br>    nom = property(None, set_nom)<br>
<br>    def set_prix(self, prix):<br>        self.prix = prix<br><br>    prix = property(None, set_prix)<br><br>    def __str__(self):<br>        return self.nom<br><br>class Modele:<br>    &quot;&quot;&quot;<br>    La definition d&#39;un modele avec les magasins.<br>
    &quot;&quot;&quot;<br>    def __init__(self, magasins =[]):<br>        self.magasins = magasins<br><br>    def set_magasins(self, magasins):<br>        self.magasins = magasins<br><br>    magasins = property(None, set_magasins)<br>
<br><br>    def sauvegarder(self,nom_fichier):<br>        modele_fichier = open(nom_fichier, &#39;w&#39;)<br>        for magasin in self.magasins:<br>            modele_fichier.write(&quot;===MAGASIN===&quot;  + &quot;\n&quot;)<br>
            modele_fichier.write(&quot;nom : &quot; + magasin.nom + &quot;\n&quot;)<br>            modele_fichier.write(&quot;items : &quot; + &quot;\n&quot;)<br>            for item in magasin.items:<br>                modele_fichier.write(&quot;    ---ITEM---&quot;  + &quot;\n&quot;)<br>
                modele_fichier.write(&quot;    nom : &quot; + item.nom + &quot;\n&quot;)<br>                modele_fichier.write(&quot;    prix : &quot; + item.prix + &quot;\n&quot;)<br>                modele_fichier.write(&quot;    ---FIN ITEM---&quot;  + &quot;\n&quot;)<br>
            modele_fichier.write(&quot;===FIN MAGASIN===&quot;  + &quot;\n&quot;)<br>        modele_fichier.close()<br><br>    def charger(self, nom_fichier):<br>        magasins = []<br>        try:<br>            modele_fichier = open(nom_fichier, &#39;r&#39;)<br>
        except IOError:<br>            print(&quot;Le fichier &quot; + nom_fichier + &quot; n&#39;existe pas.&quot;)<br>        else:    <br>            fin_fichier = False<br>            while not fin_fichier:<br>                ligne = modele_fichier.readline()<br>
                if ligne == &quot;&quot;:<br>                    self.set_magasins(magasins)<br>                    modele_fichier.close()<br>                    fin_fichier = True<br>                    break    <br>                magasin = Magasin()<br>
                items = []<br>                fin_magasin = False<br>                while not fin_magasin:<br>                    ligne = modele_fichier.readline().strip()<br>                    if ligne.startswith(&quot;===FIN MAGASIN===&quot;):<br>
                        magasin.set_items(items)<br>                        magasins.append(magasin)<br>                        fin_magasin = True<br>                    elif ligne.startswith(&quot;nom&quot;):<br>                        nom = ligne.split(&#39;:&#39;)[1]<br>
                        magasin.set_nom(nom.strip())<br>                    elif ligne.startswith(&quot;---ITEM---&quot;):<br>                        item = Item()<br>                        fin_item = False<br>                        while not fin_item:<br>
                            ligne = modele_fichier.readline().strip()<br>                            if ligne.startswith(&quot;nom&quot;):<br>                                nom = ligne.split(&#39;:&#39;)[1]      <br>                                item.set_nom(nom.strip())<br>
                            elif ligne.startswith(&quot;prix&quot;):<br>                                prix = ligne.split(&#39;:&#39;)[1]    <br>                                item.set_prix(prix.strip())<br>                            elif ligne.startswith(&quot;---FIN ITEM---&quot;):<br>
                                items.append(item)<br>                                fin_item = True<br><br><br><br><br>    def vide(self):<br>        if self.magasins == []:<br>            return True<br>        else:<br>
            return False<br><br>    def initialiser(self, nom_fichier):<br>        magasin01 = Magasin (&quot;Swing de golf&quot;)<br><br>        item01 = Item (&quot;Ensemble de fers Titleist&quot;)<br>        item01.set_prix(&quot;999.99&quot;)<br>
        <br>        item02 = Item (&quot;Ensemble de fers Callaway&quot;)<br><br>        items = [item01, item02]<br>        magasin01.set_items(items)<br><br>        self.set_magasins([magasin01])<br><br>        self.sauvegarder(nom_fichier)<br>
<br>    def afficher(self):<br>        print(&quot;&quot;)<br>        print(&quot;Magasins&quot;)<br>        for magasin in self.magasins:<br>            print(&quot;&quot;)<br>            print(magasin)<br>            for item in magasin.items:<br>
                print(item)<br><br><br>if __name__ == &#39;__main__&#39;:      <br>    modele = Modele()<br>    nom_fichier = &quot;magasinmodele.txt&quot;<br>    modele.charger(nom_fichier)<br>    if modele.vide():<br>        modele.initialiser(nom_fichier)<br>
    modele.afficher()<br><br style="color: rgb(255, 0, 0);"><br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
BTW, why do you use prix as a character? Shouldn&#39;t it be a number? Check<br>
the decimal module.<br>
Your error comes from the fact that magasin01 only exists inside<br>
initialiser(), it is local to this method, so afficher() can&#39;t reference it.<br>
Note : notice the &quot;&quot;&quot; print(tache) &quot;&quot;&quot; correction. The code is untested<br>
and probably compliant with 2.5 and not 3.x<br>
<br>
 from decimal import Decimal<br><br></blockquote></div>Thank You in advance<br><br clear="all"><br>-- <br>Marc-O. Rompré<br><br>