2010-11-29 25 views
9

Quelqu'un peut-il m'aider s'il vous plaît à comprendre comment commenter le code python correctement pour être analysé par doxygen?syntaxe doxygen en python

D'une manière ou d'une autre, il ignore les étiquettes. La sortie (HTML) affiche les tags:

@brief Creates a new Hello object. 
This Hello Object is beeing used to ... 

@param name The name of the user. 

Les deux variantes que j'ai essayé ne fonctionne pas:

class Hello: 
    """@brief short description... 

    longer description 
    """ 
    def __init__(self, name): 
    """@brief Creates a new Hello object. 

    This Hello Object is beeing used to ... 

    @param name The name of the user. 
    """ 
     self.name = name 

class Hello: 
    """\brief short description... 

    longer description 
    """ 
    def __init__(self, name): 
    """\brief Creates a new Hello object. 

    This Hello Object is beeing used to ... 

    \param name The name of the user. 
    """ 
     self.name = name 
+0

Je suppose que votre indentation est réellement valide? –

+0

Oui c'est. Je viens de le corriger. – Mark

+1

Pourquoi pas sphinx? –

Répondre

12

Doxygen a également fonctionnalité non documentée (ou bug): Il analyse la syntaxe Doxygen dans docstring si vous commencez à docstring avec un point d'exclamation:

class Hello: 
    def __init__(self, name): 
    """[email protected] Creates a new Hello object. 

    This Hello Object is being used to... 

    @param name The name of the user. 
    """ 
    self.name = name 
     dosomething(12) 

    def dosomething(x):   
     dosomethingelse 

Notez que dans Python docsting, vous avez besoin utiliser @ au lieu de \ pour lancer les commandes Doxygen (backslash fonctionne comme un caractère d'échappement dans docstring).

+0

Cela fonctionne parfaitement, merci! – Penz

4

Pour Doxygen à reconnaître les commandes spéciales dans les commentaires Python vous devez utiliser le formulaire de commentaire suivant:

class Hello: 
    ## \brief Short description. 
    # Longer description. 
    # \param self 
    # \param name 
    def __init__(self, name):   
     dosomething(12) 

    def dosomething(x):   
     dosomethingelse 

Voir http://www.stack.nl/~dimitri/doxygen/docblocks.html#pythonblocks