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
oupydantic
)
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
🧬 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...