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 :

Portée d'un objet [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Par défaut Portée d'un objet
    Bonjour,

    j'ai du mal à appréhender un point en Python.
    J'ai une application constituée de plusieurs modules.

    main.py
    |
    |---------module1.py
    |---------module2.py
    |---------module3.py

    Dans main.py j'importe le module configparser pour récupérer les paramètres de mon application. Puis j'ajoute les lignes de code suivantes pour créer mon objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CONFIG = configparser.ConfigParser()
    CONFIG.read('parametres.cfg')
    Si je souhaite accéder aux données contenues dans l'objet CONFIG à partir de module2.py par exemple, je ne peux pas même en utilisant Global.
    Je suis obligé de recréer dans chaque module cet objet et donc de multiplier les lignes identiques.
    Existe t'il un moyen pour résoudre ce problème ou du moins simplifier cela ?

    Bonne journée.

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    c'est à mon avis lié au namespace.
    Les variables sont limitées au scope du namespace.

    Pourquoi ne pas développer un module avec uniquement tes variables globales et l'importer dans chaque module ayant besoin des variables?

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 704
    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 704
    Par défaut
    Salut,

    Citation Envoyé par cazadeis Voir le message
    Existe t'il un moyen pour résoudre ce problème ou du moins simplifier cela ?
    Il faut apprendre à composer avec ce que Python impose.
    Dans ce cas particulier, pourquoi ne pas fabriquer un module supplémentaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    main.py
    |
    |---------module1.py
    |---------module2.py
    |---------module3.py
    |---------globs.py
    puis vous appelez une fonction (globs.setup) qui ira lire le fichier de configuration et associer son contenu à la variable globs.config?
    Les autres modules n'ont qu'à faire un "import globs" pour accéder à globs.config.

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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Par défaut
    Merci pour vos réponses et votre aide,

    je vais tester ce point. Du coup je vais pouvoir utiliser ce principe pour importer une seule fois les modules communs à mes sous programmes ?

    Bonne journée,

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 704
    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 704
    Par défaut
    Citation Envoyé par cazadeis Voir le message
    Du coup je vais pouvoir utiliser ce principe pour importer une seule fois les modules communs à mes sous programmes ?
    Je ne sais pas trop ce que vous entendez par "sous-programme" mais il faudra faire autant d'import qu'il y a de modules qui vont utiliser ce module commun.

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

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Ses procédures/fonctions => def

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

Discussions similaires

  1. Py4D: Portée d'un objet
    Par mirox dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 11/10/2010, 15h20
  2. Configurer le port pour les objets RMI
    Par Alasthor dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 07/06/2010, 09h02
  3. Réponses: 4
    Dernier message: 22/02/2010, 01h13
  4. Portée d'un objet crée dans objet JSP!
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/05/2009, 08h08
  5. [debutant]Portée d'un objet et creation avec new
    Par harsh dans le forum Débuter
    Réponses: 7
    Dernier message: 17/05/2006, 17h21

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