Novidade Python, novos segredos dos prefixos de strings
Lendo umas postagens no Linkedin e uma pequena pesquisa sobre o assunto, vi como os prefixos mudam completamente a forma como o interpretador lê o seu texto.
As tradicionais:
🔹 **f-strings (f"...") — As Formatadas**
A queridinha do dia a dia. Permite injetar variáveis e expressões direto no texto usando chaves {}. É elegante, legível e muito rápida.
*Exemplo:* f"Olá, {nome}!"
🔹 **r-strings (r"...") — As Cruas (Raw)**
Diz ao Python para ignorar caracteres de escape (como \n ou \t). Tudo é lido exatamente como está escrito. É a salvação na hora de escrever caminhos de arquivos ou Expressões Regulares (Regex).
*Exemplo:* r"C:\usuarios\documentos"
🔹 **b-strings (b"...") — Os Bytes**
Transforma o texto em dados binários puros (tipo bytes). Essencial para quem trabalha com protocolos de rede, criptografia ou manipulação de arquivos binários.
**E de acordo com o novo prefixo d (PEP 822)** - https://lnkd.in/dhYYPHT5 - nas próximas versões da linguagem terá o "d".
Se já tentou escrever strings multilinhas (""") dentro de uma função, sabe o drama: ou você quebra a indentação visual do seu código jogando o texto todo para a esquerda, ou aceita que o texto final terá um monte de espaços em branco indesejados (e se vira com textwrap.dedent, com algumas gambiarras até).
A **PEP 822** resolve isso introduzindo as **d-strings (Dedented Strings)**!
Com o prefixo d, o Python remove automaticamente a indentação comum do bloco de texto **em tempo de compilação**, sem custo de performance na execução.
def buscar_dados():
# O código continua lindo e alinhado, mas o texto final sai limpo!
return d"""
SELECT id, nome
FROM usuarios
WHERE ativo = true
"""
Pode utilizar combinado com as tradicionais e usar df"""...""" para ter uma string multilinha perfeitamente alinhada e, ao mesmo tempo, formatada com variáveis. A funcionalidade está sendo refinada para as próximas versões do Python (3.15/3.16) e tem várias postagens falando sobre ela na rede.
Pesquisa, qual desses prefixos você mais usa no seu dia a dia??
#Python #Programming #SoftwareEngineering #CleanCode #Python3 #DesenvolvimentoDeSoftware




