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 :

récupérer un nom de variable en chaîne de caractères


Sujet :

Python

  1. #1
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Par défaut récupérer un nom de variable en chaîne de caractères
    Bonjour à tous,

    Je souhaite récupérer le nom d'une variable en chaîne de caractères. Voici un exemple de ce que je recherche (pour être plus clair)

    Voici un bout de code où je crée une liste de dictionnaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    totoDict = {"id1" : 1,
                "id2" : 2,
                "id3" : 3 } 
     
    tataDict = {"id1" : 1,
                "id2" : 2,
                "id3" : 3 } 
     
    listDict = [totoDict, tataDict]
    A partir d'un "import listDict", je voudrai récupérer les noms des dictionnaires en chaîne de caractères. Donc récupérer "totoDict" et "tataDict".

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import listDict
     
    # Bout de code magique
     
    ==> ["totoDict","tataDict"]
    Pensez-vous qu'il est possible de récupérer les noms de variables en chaîne de caractères ?

    Merci d'avance !

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Est-ce que ceci pourrait suffire?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    listDict = {
    "totoDict":{"id1" : 1,
                "id2" : 2,
                "id3" : 3 }, 
    "tataDict":{"id1" : 1,
                "id2" : 2,
                "id3" : 3 } 
    } 
     
    if __name__ == '__main__':
     
        print listDict

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import listDict
     
    print listDict.listDict

  3. #3
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Par défaut
    Merci de ta réponse pfeuh !

    J'ai essayé ton bout de code et il ne fonctionne pas => listDict n'a pas d'attribut listDict (ce qui me paraît normal).

    Je n'ai pas précisé, mais j'utilise python3.

  4. #4
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Citation Envoyé par Tchef Voir le message
    il ne fonctionne pas => listDict n'a pas d'attribut listDict (ce qui me paraît normal).
    Je suis sous python 2.7 et ça marche très bien. le module listDict.py a un attribut ListDict qui est un dictionnaire de dictionnaires. Quand on inclut listDict, on accède a cet objet par listDict.listDict. je ne vois pas de raison pour que ça ne marche pas sous 3.x.

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    tu peux faire simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import listdict
    print(dir(listdict))
    A mon avis, si tu peux te passer de ce genre de manoeuvre, c'est bien mieux.

  6. #6
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Par défaut
    Bonjour,

    La solution de pacificator fonctionne , donc merci à toi.

    Je ne trouve pas de solutions plus élégantes, mais ta solution me suffit.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/11/2011, 22h31
  2. Récupérer un nom de variable
    Par nono17pero dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 16/07/2011, 23h22
  3. récupérer les noms des variables
    Par socrate88 dans le forum C
    Réponses: 4
    Dernier message: 03/06/2011, 10h16
  4. Réponses: 17
    Dernier message: 08/12/2008, 12h01
  5. Récupérer un nom de variable passé en argument
    Par supertino7 dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2008, 18h12

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