<filename>docstring/exempo.py<gh_stars>0
# Docstring do módulo
"""Breve descrição do módulo

Descrição completa do que o módulo faz e pode ocupar mais de uma linha,
como neste exemplo.
"""

class Classe:
    # Docstring da classe
    # Observar a intentação
    """Breve descrição da classe
    
    Descrição completa do que a classe faz e pode ocupar mais de uma linha,
    como neste exemplo.
    """
    
    def __init__(self, parm1, parm2):
        # Docstring de função
        # Observar a intentação
        """Breve descrição do init (via de regra não usa)
        
        Descrição completa do __init__. Via de regra não se documenta o __init__.
        Se houver parâmetros, como neste caso, se faz a descrição de uma linha
        e depois descreve os parâmetros como abaixo.
        :param parm1: Primeiro parâmetro
        :type parm1: int ou float
        :param parm2: Segundo parâmetro
        :type parm2: str
        """
        self.parm1 = parm1
        self.parm2 = parm2
        
    # Podemos usar typehints para ajudar na documentação
    def funcao(self, parm1: int, parm2: float) -> float:
        # Docstring de função
        # Observar a intentação
        """Breve descrição da função
        
        Descrição completa do que a classe faz e pode ocupar mais de uma linha,
        como neste exemplo.
        :param parm1: Primeiro parâmetro
        :type parm1: int
        :param parm2: Segundo parâmetro
        :type parm2:  float
        
        :return: Retorno da função
        :rtype: float
        """
        return float(parm1 + parm2)
