Como Documentar Código Python com Docstrings

Atualizado em: 10/07/2026
Tempo de leitura: 8 minutos
Pessoa programando em um notebook, vista de trás, com código desfocado exibido na tela em um fundo escuro

Documentar um código é uma das práticas mais importantes na programação. No Python, isso pode ser feito de forma simples e elegante com docstrings. Elas ajudam outros desenvolvedores (e você mesmo no futuro) a entenderem o que cada parte do programa faz. Neste artigo, você vai aprender o que são docstrings, como usá-las corretamente e boas práticas para criar uma documentação clara e útil.


O que são docstrings no Python

As docstrings são strings de documentação. Elas servem para descrever o que um módulo, função, classe ou método faz.
A principal diferença em relação a um simples comentário é que as docstrings ficam acessíveis dentro do próprio código, podendo ser visualizadas com ferramentas ou pela função help().

Um exemplo simples:

Python
def somar(a, b):
    """Retorna a soma de dois números."""
    return a + b

Se você executar help(somar), o Python exibirá o texto da docstring, mostrando exatamente o que a função faz.


Por que documentar com docstrings é importante

Documentar o código não é apenas uma boa prática, é um investimento. Algumas razões importantes para usar docstrings:

  • Facilita a leitura: o próximo programador (ou você no futuro) entenderá rapidamente o propósito da função.
  • Ajuda em ferramentas automáticas: frameworks como Sphinx e pdoc podem gerar documentação completa a partir das docstrings.
  • Melhora a colaboração: em projetos com várias pessoas, todos seguem o mesmo padrão.
  • Integração com IDEs: editores como PyCharm e VSCode exibem as docstrings quando você passa o mouse sobre funções e classes.

Onde usar docstrings

Você pode adicionar docstrings em praticamente qualquer estrutura de código:

  1. Módulos: descrevem o propósito do arquivo Python.
  2. Funções e métodos: explicam o que a função faz e o que cada parâmetro representa.
  3. Classes: descrevem o objetivo da classe e como ela deve ser usada.
  4. Pacotes: podem incluir docstrings no arquivo __init__.py para explicar o conjunto de módulos.

Exemplo com cada tipo:

Python
"""Módulo de operações matemáticas básicas."""

class Calculadora:
    """Classe que realiza operações de soma e subtração."""

    def somar(self, a, b):
        """Retorna a soma de dois números."""
        return a + b

    def subtrair(self, a, b):
        """Retorna a subtração de dois números."""
        return a - b

Como escrever uma boa docstring

Uma boa docstring deve explicar claramente o propósito da função ou classe, e não repetir o óbvio.
Veja algumas dicas práticas:

1. Use frases curtas e diretas

A primeira linha deve ser uma descrição simples do que o código faz.

Python
def dividir(a, b):
    """Divide dois números e retorna o resultado."""

2. Adicione detalhes extras quando necessário

Use uma linha em branco após a descrição inicial, e em seguida explique mais detalhes ou parâmetros.

Python
def dividir(a, b):
    """
    Divide dois números e retorna o resultado.

    Parâmetros:
        a (float): primeiro número
        b (float): segundo número
    Retorna:
        float: resultado da divisão
    """

3. Siga um padrão de formatação

Existem diferentes estilos, como Google, NumPy e reStructuredText (reST).
Escolher um padrão é importante, especialmente em equipes.

Exemplo no estilo Google:

Python
def multiplicar(a, b):
    """Multiplica dois números.

    Args:
        a (float): primeiro número
        b (float): segundo número
    Returns:
        float: resultado da multiplicação
    """

Principais padrões de docstring

Abaixo, uma comparação entre três estilos populares:

EstiloCaracterísticas principaisIdeal para
GoogleSimples e fácil de ler, usa “Args” e “Returns”.Pequenos e médios projetos.
NumPyMais detalhado, usado em projetos científicos.Projetos com fórmulas e arrays.
reSTCompatível com o Sphinx e ideal para documentação automática.Grandes bibliotecas e APIs.

Boas práticas ao criar docstrings

  • Evite repetições. Se a função se chama somar, não diga “Função que soma números”. Prefira “Retorna a soma de dois valores”.
  • Mantenha o tempo verbal no presente: “Retorna” em vez de “Retornará”.
  • Não comente o óbvio.
  • Use exemplos curtos, mas claros.
  • Siga o mesmo idioma em todo o projeto (seja português ou inglês).
  • Atualize sempre: se mudar a função, atualize a docstring também.
  • Padronize: use o mesmo estilo em todo o código.

Docstrings em classes e métodos

Em classes, a docstring deve explicar o que a classe representa e como deve ser usada.
Nos métodos, documente apenas o que não for óbvio.

Python
class ContaBancaria:
    """Representa uma conta bancária simples."""

    def __init__(self, titular, saldo=0):
        """
        Inicializa uma nova conta.

        Args:
            titular (str): nome do titular.
            saldo (float, opcional): valor inicial. Padrão é 0.
        """
        self.titular = titular
        self.saldo = saldo

    def depositar(self, valor):
        """Adiciona um valor ao saldo da conta."""
        self.saldo += valor

Como visualizar docstrings no Python

Você pode visualizar a docstring de qualquer função ou classe com o comando help():

Python
help(ContaBancaria)

Isso mostrará todo o texto da docstring diretamente no terminal.

Também é possível acessar a docstring diretamente com o atributo __doc__:

Python
print(ContaBancaria.__doc__)

Gerando documentação automática

Ferramentas como Sphinx, pdoc, Doxygen e MkDocs permitem transformar suas docstrings em documentação completa com páginas HTML.
Essas ferramentas leem as docstrings diretamente do código e geram sites de documentação prontos para publicar.

Se você mantém um projeto open source no GitHub, usar uma dessas ferramentas é uma excelente forma de mostrar profissionalismo e organização.


Erros comuns ao usar docstrings

  • Esquecer de adicionar a docstring em funções novas.
  • Usar comentários no lugar errado (fora das aspas triplas).
  • Escrever docstrings muito genéricas, como “Função principal”.
  • Não manter o padrão entre os arquivos.
  • Deixar docstrings desatualizadas após alterar o código.

Conclusão

As docstrings são uma das formas mais eficientes de documentar código Python. Elas tornam seu projeto mais organizado, colaborativo e profissional.
Ao adotar um estilo padronizado e manter as docstrings sempre atualizadas, você facilita a vida de quem lê e usa o seu código.
Com boas docstrings, o seu código fala por si mesmo.


Perguntas Frequentes (FAQ)

1. O que é uma docstring?
É uma string usada para documentar o que uma função, classe ou módulo faz.

2. Qual a diferença entre comentário e docstring?
Comentários não aparecem na ajuda do Python, docstrings sim.

3. Onde colocar a docstring?
Logo abaixo da definição da função, classe ou módulo.

4. Que aspas devo usar na docstring?
Use aspas triplas """ no início e no fim do texto.

5. Posso usar docstring em português?
Sim, o importante é manter o mesmo idioma em todo o projeto.

6. O que significa o padrão Google em docstrings?
É um formato simples que organiza os parâmetros e retornos com “Args” e “Returns”.

7. Como vejo a docstring de uma função?
Use o comando help(nome_da_função) no terminal.

8. Ferramentas como Sphinx leem docstrings?
Sim, elas geram documentação automaticamente a partir delas.

9. É obrigatório usar docstrings no Python?
Não, mas é fortemente recomendado.

10. Quantas linhas deve ter uma docstring?
O suficiente para explicar o que faz, sem exageros.

11. Posso usar exemplos dentro da docstring?
Sim, exemplos ajudam a entender o uso da função.

12. Preciso atualizar docstrings quando mudo o código?
Sim, sempre atualize para evitar inconsistências.


Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Configuração TOML em um projeto Python
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    tomllib no Python: leia arquivos TOML

    Aprenda a ler arquivos TOML com tomllib no Python, validar configurações, tratar erros e organizar projetos com pyproject.toml.

    Ler mais

    Tempo de leitura: 7 minutos
    24/07/2026
    Desenvolvedor monitorando logs estruturados em Python
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    Logging estruturado com structlog

    Aprenda logging estruturado com structlog em Python, contexto, JSON, testes, segurança e integração com a biblioteca logging.

    Ler mais

    Tempo de leitura: 6 minutos
    24/07/2026
    Configurações seguras em aplicação Python com Pydantic Settings
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    Pydantic Settings: configurações seguras

    Aprenda a organizar configurações com Pydantic Settings, validar variáveis de ambiente e proteger segredos em projetos Python.

    Ler mais

    Tempo de leitura: 5 minutos
    23/07/2026
    Desenvolvedor programando em Python com Ruff para lint e formatação
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    Ruff no Python: lint e formatação de código passo a passo

    Aprenda a usar Ruff no Python para lint, formatação, correções automáticas, pyproject.toml, VS Code e CI com uma configuração prática.

    Ler mais

    Tempo de leitura: 10 minutos
    22/07/2026
    Limpeza de dados sujos em Python para data cleaning
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    Como limpar dados sujos no Python: Guia prático de Data Cleaning

    No mundo da programação, existe um ditado muito famoso: “Lixo entra, lixo sai”. Isso significa que, não importa o quão

    Ler mais

    Tempo de leitura: 11 minutos
    12/04/2026
    Proteção de API Flask usando autenticação JWT em Python
    Boas Práticas
    Foto de perfil de Leandro Hirt da Academify

    Como proteger sua API Flask com JWT em minutos

    A segurança é um dos pilares mais importantes no desenvolvimento de aplicações modernas. Quando decidimos Como proteger sua API Flask

    Ler mais

    Tempo de leitura: 9 minutos
    05/04/2026