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 :

Création de package et __init__.py non fonctionnel


Sujet :

Python

  1. #1
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut Création de package et __init__.py non fonctionnel
    Bonjour,

    Je commence tout doucement à m'intéresser au langage Python et je dois dire que j'apprécie ce langage. Seulement j'ai un petit problème dont je n'arrive pas à résoudre: J'aimerais créer un package mais cela ne veut pas. Pour expliquer, je vais prendre un exemple :

    Dans une structure de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Repertoire projet
        Base
          cpoint.py
          __init__.py (#1)
        __init.py (#2)
    main.py
    Avec réciproquement les sources suivant:

    main.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import cdraw
     
    a = CPoint(10,15)
    L'erreur au lancement viens qu'il ne trouve pas la class CPoint.

    cpoint.py :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class CPoint:    __pointX = 0
        __pointY = 0
     
        def _init_(self, x):
            self.__pointX = x
            self.__pointY = y
     
        def getX(self):
            return self.__pointX
     
        def getY(self):
            return self.__pointY
    __init__py (#1) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    __all__ = ["cpoint"]
     
    from . import cpoint
    et pour finir, __init__.py (#2) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    __all__ = ["cpoint"]
     
    from . import base
    Le problème est que dans le fichier main.py je n'arrive pas à récuperer l'objet CPoint. Je pense que c'est un soucis de création du package en question (je suis pas encore à l'aise dans cette partie du langage).

    Y a t-il un truc que j'ai loupé ou fait de travers ?

    PS: j'utilise python 3.4.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    cpoint est le nom du module (le fichier cpoint.py) qui est dans le package "base" (folder qui contient le __init__.py).

    Si les __init__.py sont vides, main pourra accéder à CPoint via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from base.cpoint import CPoint
    Vous pouvez remplir base\__init__.py pour que main n'ait qu'à écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from base import CPoint
    CPoint est toujours dans cpoint mais sa boîte est "masqué".

    Dans tous les cas, il est préférable d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import base as XX
    XX.CPoint()
    Si vous changez d'avis (renommez base en draw), seul l'import devra être modifié. Le code utilise XX.

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

  3. #3
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut
    Bon je commence a comprendre, merci pour ta réponse, si jamais je coince encore j'hésiterais pas a demandé sur ce topic

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2006, 16h58
  2. Update non fonctionnel
    Par kissmytoe dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 18h37
  3. [REPORTS] Order BY non fonctionnel
    Par sdiack dans le forum Reports
    Réponses: 2
    Dernier message: 10/02/2006, 18h10
  4. Package present mais methode non reconnu !!
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/12/2005, 10h19
  5. [Info]Création de packages
    Par mr.t dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/03/2005, 17h26

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