image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

60
%OFF
Article image
Fernanda Araujo
Fernanda Araujo23/06/2025 11:25
Compartir

Paradigmas de Linguagens de Programação em Python: Python Declarativo (Part. 10)

    Aprender diferentes paradigmas de programação amplia nossa capacidade de resolver problemas de forma mais eficaz. Neste artigo, vamos explorar o paradigma declarativo, que permite escrever código de forma mais expressiva, legível e direta, descrevendo o que queremos obter, e não como obter.

    E, como nas edições anteriores, seguimos acompanhando a arqueóloga Nico Robin — que, ao decifrar os Poneglyphs, declara o conhecimento que busca, e deixa que os símbolos revelam os segredos do mundo. É exatamente assim que funciona o paradigma declarativo: você declara o que precisa, e o sistema cuida do resto.

    🔎 O que é Programação Declarativa?

    A programação declarativa é um estilo em que o código descreve o resultado desejado, sem se preocupar com os detalhes de controle de fluxo, loops ou mutações de estado. Ela contrasta com abordagens imperativas, em que você precisa informar cada passo da execução.

    Em vez de dizer "como" fazer, você diz "o que" você quer.

    Esse estilo é usado em diversas áreas, como:

    • Consultas a bancos de dados (ex: SQL)
    • Definição de regras (ex: lógica declarativa)
    • Transformações de dados (ex: pandas)
    • Interfaces reativas (ex: streamlit, Dash)

    🐍 Python é uma linguagem declarativa?

    Não nativamente, mas o Python é flexível o suficiente para simular o estilo declarativo usando:

    • expressões compreensíveis (comprehensions, lambda, map, filter)
    • bibliotecas como pandas, sqlalchemy, kanren, sympy
    • frameworks com estruturas descritivas (como streamlit ou pydantic)

    Essas ferramentas permitem evitar estruturas imperativas, como for, if, e manipulação de estado, promovendo uma forma de pensar mais direta, baseada em declaração de intenções.

    🧠 A metáfora da Robin e os Poneglyphs

    Nico Robin não programa passos, ela lê símbolos, cruza significados e reconstrói verdades ocultas.

    Isso é programação declarativa: em vez de escrever rotinas manuais, você declara uma intenção (ex: "quero os personagens com recompensa acima de 1 bilhão") e deixa que a linguagem/tradutor (biblioteca) encontre e entregue esse resultado.

    💻 Exemplo 1 — Comprehension: forma declarativa de gerar listas

    python
    
    # Imperativo
    nomes = []
    for p in tripulacao:
      if p["recompensa"] > 1_000_000_000:
          nomes.append(p["nome"])
    
    # Declarativo
    nomes = [p["nome"] for p in tripulacao if p["recompensa"] > 1_000_000_000]
    

    🔍 Aqui, declaramos a intenção: “quero os nomes com recompensa > 1 bilhão” — o Python resolve o resto.

    💻 Exemplo 2 — pandas: consulta declarativa sobre dados

    python
    
    import pandas as pd
    
    df = pd.DataFrame({
      "nome": ["Robin", "Luffy", "Zoro", "Usopp"],
      "recompensa": [130_000_000, 1_500_000_000, 320_000_000, 200_000_000]
    })
    
    # Declaramos: quero todos com recompensa > 300 mi
    result = df[df["recompensa"] > 300_000_000]
    

    🔍 O foco não está em percorrer linhas, mas em expressar a condição de forma declarativa.

    💻 Exemplo 3 — sqlalchemy: SQL em Python com estilo declarativo

    python
    
    from sqlalchemy import Table, Column, Integer, String, MetaData, select
    
    metadata = MetaData()
    personagens = Table("personagens", metadata,
      Column("id", Integer),
      Column("nome", String),
      Column("recompensa", Integer)
    )
    
    # Consulta declarativa
    stmt = select(personagens).where(personagens.c.recompensa > 500_000_000)
    

    🔍 Criamos a consulta declarando a condição, sem escrever SQL literal nem percorrer registros.

    🧪 Outras formas de estilo declarativo em Python

    image

    🧬 O que define código declarativo em Python?

    • Pouco ou nenhum uso de estruturas de controle (for, if, while)
    • Nenhum estado intermediário mutável
    • Uso de expressões em vez de instruções
    • Foco na descrição do resultado final
    • Ideal para manipulação de dados, expressões matemáticas, lógica e transformações

    🧠 Por que usar o estilo declarativo?

    • Mais legibilidade: o código descreve diretamente sua intenção
    • Menor risco de bugs: menos manipulação de estado
    • Mais próximo da linguagem de domínio
    • Facilita testes e manutenção
    • Escalável em bibliotecas como pandas, sqlalchemy, sympy, kanren

    🧭 Robin usaria programação declarativa?

    Sim — e é por isso que usamos ela como guia nesse artigo.

    Quando ela encontra um Poneglyph, ela não diz ao mundo como montar a história. Ela declara o que quer entender, observa os padrões e deduz as respostas — isso é o coração da programação declarativa: declarar intenção e receber conhecimento como resultado.

    🔚 Conclusão

    Embora o Python não tenha sido criado com foco declarativo, seu ecossistema permite adotar esse estilo de forma poderosa e produtiva, especialmente para manipulação de dados, lógica simbólica e expressividade.

    Ao escrever código declarativo, você se torna mais próximo de como Robin decifra a história do mundo: com clareza, foco e intenção — deixando o sistema encontrar a verdade para você.

    👉 No próximo artigo, vamos explorar Python concorrente...

    image

    Compartir
    Recomendado para ti
    Savegnago - Lógica de Programação
    meutudo - Mobile Developer
    NTT DATA - Java e IA para Iniciantes
    Comentarios (1)
    DIO Community
    DIO Community - 23/06/2025 16:54

    Fernanda, seu artigo sobre programação declarativa em Python é muito esclarecedor! Você explicou de forma clara como esse paradigma é diferente do imperativo, destacando como podemos descrever o que queremos alcançar sem nos preocupar com os detalhes de implementação. A metáfora com Nico Robin decifrando os Poneglyphs foi uma escolha muito criativa e ajudou a ilustrar de maneira acessível o conceito de declaração de intenção.

    A forma como você demonstrou o uso de comprehensions, pandas e sqlalchemy foi muito prática e objetiva. O exemplo de como fazer uma consulta simples, declarando apenas a condição, realmente mostra o poder desse estilo de programação.

    Minha pergunta para você é: como você encara a transição do estilo imperativo para o declarativo, especialmente para quem está acostumado a controlar cada passo do programa? Quais as vantagens e desafios que você vê ao usar esse estilo em projetos mais complexos?