<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Novidades on Python Brasil — Aprenda Python em Português</title>
    <link>https://python.dev.br/tags/novidades/</link>
    <description>Recent content in Novidades on Python Brasil — Aprenda Python em Português</description>
    <generator>Hugo</generator>
    <language>pt-br</language>
    <lastBuildDate>Fri, 10 Apr 2026 15:33:44 -0300</lastBuildDate>
    <atom:link href="https://python.dev.br/tags/novidades/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>D-Strings no Python 3.15: Adeus textwrap.dedent()</title>
      <link>https://python.dev.br/blog/python-d-strings-pep-822-dedent/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/python-d-strings-pep-822-dedent/</guid>
      <description>&lt;p&gt;Se você já escreveu strings multiline dentro de funções ou classes em Python, provavelmente conhece o problema: a indentação do código contamina o conteúdo da string. A solução clássica sempre foi &lt;code&gt;textwrap.dedent()&lt;/code&gt;, mas ela tem limitações e adiciona overhead em tempo de execução.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;strong&gt;PEP 822&lt;/strong&gt; propõe uma solução elegante para o Python 3.15: as &lt;strong&gt;d-strings&lt;/strong&gt; (dedented strings). Com o prefixo &lt;code&gt;d&lt;/code&gt; antes de aspas triplas, a indentação é removida automaticamente pelo compilador, sem custo em runtime. É uma daquelas mudanças que parece pequena, mas melhora o dia a dia de quem escreve Python profissionalmente.&lt;/p&gt;</description>
    </item>
    <item>
      <title>frozendict no Python 3.15: Dicionário Imutável</title>
      <link>https://python.dev.br/blog/frozendict-python-3-15-dicionario-imutavel/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/frozendict-python-3-15-dicionario-imutavel/</guid>
      <description>&lt;p&gt;Python sempre teve &lt;code&gt;frozenset&lt;/code&gt; como versão imutável de &lt;code&gt;set&lt;/code&gt;, mas nunca ofereceu o equivalente para dicionários. Isso muda no &lt;strong&gt;Python 3.15&lt;/strong&gt; com a aprovação da &lt;strong&gt;PEP 814&lt;/strong&gt;, que adiciona &lt;code&gt;frozendict&lt;/code&gt; como tipo &lt;strong&gt;built-in&lt;/strong&gt; — sem necessidade de instalar pacotes externos.&lt;/p&gt;&#xA;&lt;p&gt;O &lt;code&gt;frozendict&lt;/code&gt; é um dicionário imutável e hashable que pode ser usado como chave de outros dicionários, elemento de conjuntos e compartilhado entre threads sem preocupação com mutações acidentais. É uma adição que profissionais de Python pediam há mais de uma década.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 3.14: Template Strings na Prática</title>
      <link>https://python.dev.br/blog/python-3-14-template-strings/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/python-3-14-template-strings/</guid>
      <description>&lt;p&gt;O Python 3.14 traz uma novidade que chama atenção de quem acompanha a evolução da linguagem: as &lt;strong&gt;template strings&lt;/strong&gt;, definidas na &lt;strong&gt;PEP 750&lt;/strong&gt;. À primeira vista, elas parecem só mais uma variação das famosas f-strings. Mas a proposta é diferente: em vez de gerar imediatamente uma &lt;code&gt;str&lt;/code&gt;, uma template string preserva a estrutura da interpolação para que seu código possa inspecionar, transformar ou serializar cada parte de forma controlada.&lt;/p&gt;&#xA;&lt;p&gt;Na prática, isso abre espaço para bibliotecas de &lt;strong&gt;HTML seguro&lt;/strong&gt;, &lt;strong&gt;logging estruturado&lt;/strong&gt;, &lt;strong&gt;DSLs&lt;/strong&gt;, geração de consultas e outros fluxos em que você quer manter separadas as partes estáticas do texto e os valores interpolados. Para quem já usa Python em automação, backend ou ferramentas internas, vale entender desde já como esse recurso funciona.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
