2010-11-29 14 views
9

¿Alguien puede ayudarme a encontrar la manera de comentar el código python correctamente para ser analizado por doxygen?sintaxis doxygen en python

De alguna manera ignora las etiquetas. La salida (HTML) muestra los tags:

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

@param name The name of the user. 

Ambas variantes que probé no funcionan:

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

Supongo que su sangría es realmente válida? –

+0

Sí lo es. Solo lo corregí. – Mark

+1

¿Por qué no esfinge? –

Respuesta

12

Doxygen tiene también característica no documentada (o error): Se analiza la sintaxis Doxygen en cadena de documentación si se inicia la cadena de documentación con un signo de exclamación:

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 

Tenga en cuenta que en Python docsting, necesita utilizar @ en lugar de \ para iniciar los comandos de Doxygen (la barra invertida funciona como un carácter de escape en docstring).

+0

Eso funciona perfectamente, gracias! – Penz

4

Para Doxygen para reconocer los comandos especiales en los comentarios de Python tiene que usar el siguiente formulario de comentarios:

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

    def dosomething(x):   
     dosomethingelse 

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