[Tutor] Hi everybody stuck on some error need help please thank you!!

Marco Rompré marcodrompre at gmail.com
Sat Apr 24 05:07:11 CEST 2010


Hi everybody, I would appreciate your help on this one
In this program I want to create 2 concepts each with 2 or 3 properties
My first concept is magasin(shop in french) and my shop has 3 attributes:
nom(name in french), items and ville (city in french)
the second one is items and its 2 attributes are nom(name in french) and
prix (price in french)
I want to be able to show a modele with the name of my magasins (stores) and
the city theyre located in, what are the names of the items i have in each
magasin and their prices.

Here's my code:

class Magasin:
    """
    Le concept magasin pour la gestion d'inventaire des items de golf.
    """
    def __init__(self, nom ="", items =[], ville="" ):
        self.nom = nom
        self.items = items
        self.vile = ville

    def set_nom(self, nom):
        self.nom = nom

    nom = property(None, set_nom)

    def set_items(self, items):
        self.items = items

    items = property(None, set_items)

    def set_ville(self, ville):
        self.ville = ville

    items = property(None, set_ville)

    def __str__(self):
        return self.nom

class Item:
    """
    Le concept item pour la gestion d'inventaire des items de golf.
    """
    def __init__(self, nom ="", prix = 100):
        self.nom = nom
        self.prix = prix

    def set_nom(self, nom):
        self.nom = nom

    nom = property(None, set_nom)

    def set_prix(self, prix):
        self.prix = prix

    prix = property(None, set_prix)

    def __str__(self):
        return self.nom

class Modele:
    """
    La definition d'un modele avec les magasins.
    """
    def __init__(self, nom_fichier, magasins =[]):
        self.nom_fichier = nom_fichier
        self.magasins = magasins

    def set_nom_fichier(self, nom_fichier):
        self.nom_fichier = nom_fichier

    nom_fichier = property(None, set_nom_fichier)

    def set_magasins(self, magasins):
        self.magasins = magasins

    magasins = property(None, set_magasins)

    def sauvegarder(self):
        modele_fichier = open(self.nom_fichier, 'w')
        for magasin in self.magasins:
            modele_fichier.write("===MAGASIN==="  + "\n")
            modele_fichier.write("nom : " + magasin.nom + "\n")
            modele_fichier.write("items : " + "\n")
            for item in magasin.items:
                modele_fichier.write("    ---ITEM---"  + "\n")
                modele_fichier.write("    nom : " + item.nom + "\n")
                modele_fichier.write("    prix : " + item.prix + "\n")
                modele_fichier.write("    ---FIN ITEM---"  + "\n")
            modele_fichier.write("===FIN MAGASIN==="  + "\n")
        modele_fichier.close()

    def charger(self):
        magasins = []
        try:
            modele_fichier = open(self.nom_fichier, 'r')
        except IOError:
            print("Le fichier " + self.nom_fichier + " n'existe pas.")
        else:
            fin_fichier = False
            while not fin_fichier:
                ligne = modele_fichier.readline()
                if ligne == "":
                    self.set_magasins(magasins)
                    modele_fichier.close()
                    fin_fichier = True
                    break
                magasin = Magasin()
                items = []
                fin_magasin = False
                while not fin_magasin:
                    ligne = modele_fichier.readline().strip()
                    if ligne.startswith("===FIN MAGASIN==="):
                        magasin.set_items(items)
                        magasins.append(magasin)
                        fin_magasin = True
                    elif ligne.startswith("nom"):
                        nom = ligne.split(':')[1]
                        magasin.set_nom(nom.strip())
                    elif ligne.startswith("---ITEM---"):
                        item = Item()
                        fin_item = False
                        while not fin_item:
                            ligne = modele_fichier.readline().strip()
                            if ligne.startswith("nom"):
                                nom = ligne.split(':')[1]
                                item.set_nom(nom.strip())
                            elif ligne.startswith("prix"):
                                prix = ligne.split(':')[1]
                                item.set_prix(float())
                            elif ligne.startswith("---FIN ITEM---"):
                                items.append(item)
                                fin_item = True

    def vide(self):
        if self.magasins == []:
            return True
        else:
            return False

    def initialiser(self):

        magasin01 = Magasin ("Swing de golf")

        magasin02 = Magasin ("Golftown")

        magasin03 = Magasin ("PointGolf")


        item01 = Item ("Ensemble de fers Titleist")
        item01.set_prix("1099.99")

        item02 = Item ("Ensemble de fers Callaway")
        item02.set_prix("1299.99")

        item03 = Item ("Ensemble de fers Taylormade Burner Graphite")
        item03.set_prix("2499.99")

        item04 = Item ("Ensemble de fers Cobra")
        item04.set_prix("999.99")

        item05 = Item ("Ensemble de fers Ping")
        item06.set_prix("1399.99")

        item06 = Item ("Ensemble de fers Ben Hogan")
        item06.set_prix("1199.99")

        items = [item01, item02, item03, item04, item05, item06]
        magasin01.set_items(items)

        self.set_magasins([magasin01])

        self.sauvegarder()

    def afficher(self):
        print("")
        print("Magasins")
        for magasin in self.magasins:
            print("")
            print(magasin)
            for item in magasin.items:
                print(item)


if __name__ == '__main__':
    modele = Modele()
    nom_fichier = "magasinmodele.txt"
    modele.charger(nom_fichier)
    if modele.vide():
        modele.initialiser(nom_fichier)
    modele.afficher()

And here's my error :

Traceback (most recent call last):
  File "F:\School\University\Session 4\Programmation
SIO\magasingolfmodele.py", line 187, in <module>
    modele = Modele()
TypeError: __init__() takes at least 2 arguments (1 given)


Thank You!!!

-- 
Marc-O. Rompré
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100423/571c2a90/attachment-0001.html>


More information about the Tutor mailing list