image

Access unlimited bootcamps and 650+ courses forever

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

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

  • #Python

O paradigma declarativo é uma forma de programar onde você descreve o que deseja alcançar, em vez de detalhar como o computador deve fazer. Em Python, ainda que a linguagem seja majoritariamente imperativa, é possível usar conceitos declarativos para escrever códigos mais expressivos, legíveis e próximos da intenção do problema.

Neste artigo, vamos explorar os conceitos do paradigma declarativo, suas vantagens, limitações e exemplos práticos usando Python — mostrando como pensar declarativamente pode enriquecer seu repertório de programação.

Para ilustrar esse processo, vamos imaginar que somos Nico Robin, a arqueóloga de One Piece, tentando decifrar os antigos Poneglyphs. Assim como um desenvolvedor precisa entender, executar e corrigir seu código, Robin precisa interpretar símbolos, prever falhas e reagir a imprevistos durante a tradução de textos milenares.

⚙️ O que é Programação Declarativa?

Na programação declarativa, o foco está na descrição do problema ou resultado esperado, deixando para o sistema a responsabilidade de determinar os passos para alcançá-lo.

Diferente do paradigma imperativo, que diz ao computador como executar as tarefas passo a passo, o declarativo responde a perguntas do tipo o que é verdade, o que queremos ou quais regras devem ser satisfeitas.

🧱 Princípios do Paradigma Declarativo

  • Foco no resultado: descreve o que deve ser feito, não como.
  • Regras e relações: define regras lógicas e condições para soluções.
  • Ausência de estado e efeitos colaterais: não manipula diretamente variáveis mutáveis.
  • Expressividade e clareza: código mais próximo da linguagem natural do problema.
  • Backtracking e inferência (quando suportado): o sistema explora possibilidades para encontrar soluções.

🔄 Simulando Lógica Declarativa em Python Puro

Embora Python não tenha suporte nativo para programação declarativa completa, é possível simular esse estilo criando estruturas que representam fatos e regras, e aplicando filtros para deduzir soluções.

python

# Simulando fatos: quem detém quais Poneglyphs
fatos = {
  "Robin": ["Poneglyph do Norte", "Poneglyph do Sul"],
  "Jinbei": ["Poneglyph do Leste"],
  "Franky": []
}

# Regra declarativa: quem possui algum Poneglyph
def possui_poneglyph(nome):
  return nome if fatos.get(nome) else None

pessoas = ["Robin", "Jinbei", "Franky"]

# Consulta declarativa: listar todos que possuem Poneglyphs
detentores = list(filter(lambda x: possui_poneglyph(x), pessoas))
print(detentores)  # ['Robin', 'Jinbei']

🎯 Aplicações Práticas do Paradigma Declarativo

  • Sistemas especialistas simples: aplicar regras e fatos para inferir decisões.
  • Modelagem de regras de negócio: expressar políticas e condições sem definir algoritmo.
  • Quebra-cabeças e problemas lógicos: expressar relações e condições de forma clara.
  • Consultas declarativas: filtrar e buscar dados com expressões intuitivas.

🧪 Exemplo com pandas — Estilo Declarativo para Dados

Em manipulação de dados, bibliotecas como pandas permitem um estilo declarativo para seleção e transformação, aproximando-se do paradigma.

python

import pandas as pd

# Dados fictícios de símbolos descobertos por Robin
dados = {
  "Simbolo": ["Sol", "Lua", "Estrela", "Mar"],
  "Valor": [10, 20, 15, 30]
}

df = pd.DataFrame(dados)

# Selecionar símbolos com valor maior que 15 — descreve o que quer, não como filtrar
resultado = df[df["Valor"] > 15]

print(resultado)

⚠️ Limitações e Desafios

  • Python não oferece suporte nativo para recursos avançados como backtracking automático.
  • Construir soluções declarativas completas pode exigir bibliotecas externas.
  • Às vezes, o paradigma declarativo pode ser menos eficiente para tarefas que exigem controle detalhado.

🔚 Conclusão

Integrar o paradigma declarativo em Python amplia significativamente sua habilidade de expressar soluções complexas com clareza e objetividade. Ao priorizar o que deve ser feito em vez de como executar, você cria códigos que refletem diretamente a lógica do problema, tornando-os mais fáceis de entender, manter e evoluir.

Assim como Robin, que decifra segredos ancestrais ao enxergar além das aparências, programar declarativamente é captar a essência da questão e permitir que o código trate, de forma elegante e eficiente, os detalhes da execução.

👉 No próximo artigo, vamos explorar sobre Python Concorrente...

image

Share
Recommended for you
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Santander - Cibersegurança #2
Comments (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?