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 :

commentaire initial des classes et fonctions


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 128
    Points : 122
    Points
    122
    Par défaut commentaire initial des classes et fonctions
    Bonjour à tous.

    Dans le livre "Apprendre à programmer avec python", G. Swinnen parle de l'importance des commentaires ("..." ou """...""") initiaux des classes et fonctions:

    Dans notre exemple ultra-simplifié, cette ligne n'est rien d'autre
    qu'un simple commentaire. (Par convention, si la première ligne suivant l'instruction class est
    une chaîne de caractères, celle-ci sera considérée comme un commentaire et incorporée
    automatiquement dans un dispositif de documentation des classes qui fait partie intégrante de
    Python. Prenez donc l'habitude de toujours placer une chaîne décrivant la classe à cet endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Ma_Classe():
        "ligne de commentaires"
     
    def maFonction():
        "ligne de commentaires"
    terminal python:
    >>> from mon_fichier import Ma_classe
    >>> help(Ma_Classe)

    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Help on class Ma_Classe in module fichier:
     
    class Ma_Classe
     |  ligne de commentaires
    Est-ce si utile que ça? Parce que j'aime bien utiliser des trucs du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Ma_Classe():
        #-------------------------
        # ligne de commentaires
        #-------------------------
    Mais là les commentaires ne seront plus visibles dans la doc python.

    A moins de faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Ma_Classe():
        """
        #-------------------------
        # ligne de commentaires
        #-------------------------
        """
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Ma_Classe():
        """#-------------------------
        # ligne de commentaires
        #---------------------------"""
    Mais bon c'est moyen.

    Vous vous demandez où je veux en venir?

    Et bien j'étudie les possibilités offertes par les commentaires initiaux des classes et fonctions et j'ai l'impression que certaines choses m'échappent.

    Par ex. est-ce que les commentaires initiaux (voir les ex ci-dessus) des classes et fonctions sont pris en comptes par les environnement de développement? Est-ce bien pratique dans ce cas? Serraient-ils intégrés avec tous les ex de codes fournis ci-dessus? Je ne sais pas encore car Eric4 et Monkey Studios ne sont pas facile à installer (librairies plus récentes que celles de mon système d'exploitation) et que je n'utilise pour le moment qu'un simple éditeur de texte (mais ça pourrait bientôt changer).

    Je suis en train de coder un projet qui contiendra au moins 150 classes. Je n'ai pas envie de corriger tous les commentaires à la fin.

    Votre avis?

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    les lignes entre """...""" sont des "chaînes de documentation" plutôt que des commentaires.
    Tout commentaire commençant par # est ignoré par l'interpréteur Python.
    les """...""" en début de fonction sont accessible par mafonction.__doc__ entres autres. Et tu n'as dans ce cas-là pas besoin de rajouter un # devant chaque ligne.

    Donc c'est à toi de voir quelle valeur tu donnes à tes commentaires pour choisir l'une ou l'autre des représentations.

    En tout cas, tout commentaire commençant par # est ignoré par l'interpréteur et ne sera jamais non plus utilisé par un IDE au contraire des docstrings.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 128
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par Guigui_ Voir le message
    les """...""" en début de fonction sont accessible par mafonction.__doc__ entres autres.
    On en apprend tous les jours. Je ne connaissais même pas la fonction:

    ni help(Ma_Classe.__doc__)

    Merci. Et pour la documentation des classes dans un ide? Comment cela se présente? Est-ce que quelqu'un peut faire une capture d'écran du logiciel dans ce cas précis?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 128
    Points : 122
    Points
    122
    Par défaut
    La fonction de classe def __doc__(self) a le mérite de bien gérer les accents. Ce qui n'est pas le cas de "" en début de classe. Quand je mets u"..." en début de classe puis
    >>> help(Ma_Classe.__doc__)
    l'interpréteur python me sort la doc de la fonction unicode...

Discussions similaires

  1. utilisation des classes et fonctions d'une dll c++ en vb
    Par rigane_med dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/06/2011, 00h52
  2. Calculer le nombre d'enregistrement en fonction des classes
    Par bigs3232 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/05/2010, 14h42
  3. Différencier des classes en fonction d'un attribut
    Par micromich dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 17/02/2010, 17h48
  4. Réponses: 31
    Dernier message: 01/10/2009, 14h21
  5. utilisation des classes et fonctions d'une dll c++ en vb
    Par yuriashford dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/05/2008, 15h21

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