IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

PYTHON : liste d'objets


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut PYTHON : liste d'objets
    Bonjour à tous,

    Pur autodidacte, je suis en train de bosser sur un petit script en python mais je bloque sur un problème.

    Le script doit permettre à l'utilisateur de sélectionner deux objets de la meme classe (avec les caracteristiques correspondantes a chacuns) et une série d'opération être effectué a partir desdites caractéristiques.

    Mais voilà, je n'arrive pas à faire en sorte que à chaque fois que jinstancie un nouvel objet il se place automatiquement dans ladite liste. Et même si je le fais a la main au final quand je veux afficher la liste avec les caractéristiques, ça ne les affiches pas....

    Quelqu'un aurait il une solution ? L'idée c'est de ne pas avoir à faire une liste de listes ...


    Merci !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par darkjeanmichel Voir le message
    Mais voilà, je n'arrive pas à faire en sorte que à chaque fois que jinstancie un nouvel objet il se place automatiquement dans ladite liste.
    "automatiquement", c'est écrire des instructions qui...

    Citation Envoyé par darkjeanmichel Voir le message
    Et même si je le fais a la main au final quand je veux afficher la liste avec les caractéristiques, ça ne les affiches pas....
    Si vous ne dites pas "je veux afficher çà" et que vous ne montrez pas ce que vous avez essayé et le soucis rencontré...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut
    Oki, alors !

    Voici le code :
    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
     
    liste_nom_produit = []
    class Produit :
     
        def __init__(self, nom_produit, caracteristique1, caracteristique2) : 
            self.nom_produit = nom_produit
            self.caracteristique1 = caracteristique1
            self.caracteristique2 = caracteristique2
     
        def get_nom_produit(self):
            global liste_nom_produit
            liste_nom_produit.append(self.nom_produit)
            return self.nom_produit
     
        def get_caracteristique1l(self):
            return self.caracteristique1
     
        def get_caracteristique2l(self):
            return self.caracteristique2
     
    pomme = Produit("pomme", True, True)
    steak =  Produit("steak", False, True, True)
     
     
    print("Liste des produits disponibles : ", liste_nom_produit)
    En l'espece, ça me retourne une liste vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "Liste des produits disponibles : []"

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Relisez votre code.

    La listeliste_nom_produit est initialisée à vide et seul des appels à la fonction/méthode get_nom_produit y ajoutent des objets.
    Or cette fonction/méthode n'est jamais appelée et le print ne pourra afficher qu'une liste vide...

    C'est logique, non?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Par défaut
    Ben <__main__.Aliment object at 0x7f3739137e80> est ce qui est retourné, par défaut, via repr(object). Maintenant si vous voulez visualiser autre chose/autrement, vous pouvez définir une méthode __str__.

    - W

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par darkjeanmichel Voir le message
    Ben <__main__.Aliment object at 0x7f3739137e80> est ce qui est retourné, par défaut, via repr(object).
    Oui. Tu affiches l'objet lui-même. Ce qui ne change rien à la remarque de wiztricks. Si tu n'appelles pas get_nom_produit() ta liste, bien qu'existante, restera vide

    Citation Envoyé par darkjeanmichel Voir le message
    Maintenant si vous voulez visualiser autre chose/autrement, vous pouvez définir une méthode __str__.
    J'ai l'impression que tu répètes sans vraiment comprendre. Déjà ce n'est pas à nous de définir des trucs à ta place. Ensuite le souci ne vient pas de la façon d'afficher ton objet mais du fait que ton objet est vide. Vide n'empêche pas d'exister. Mais exister ne signifie pas "contient des trucs"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste d'objets et STL
    Par thibouille dans le forum SL & STL
    Réponses: 2
    Dernier message: 23/10/2005, 17h41
  2. Tri d'une liste d'objet CObList
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 13/07/2005, 13h50
  3. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11
  4. [Kylix] Composant - Liste d'objet
    Par Metal3d dans le forum EDI
    Réponses: 1
    Dernier message: 13/12/2002, 22h17
  5. liste d'objets
    Par Pierrot dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2002, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo