<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Python Moderno on Python Brasil — Aprenda Python em Português</title>
    <link>https://python.dev.br/tags/python-moderno/</link>
    <description>Recent content in Python Moderno on Python Brasil — Aprenda Python em Português</description>
    <generator>Hugo</generator>
    <language>pt-br</language>
    <lastBuildDate>Tue, 28 Apr 2026 16:49:51 -0300</lastBuildDate>
    <atom:link href="https://python.dev.br/tags/python-moderno/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>Dataclasses em Python: Guia Completo com Exemplos Práticos</title>
      <link>https://python.dev.br/blog/dataclasses-python-guia-completo/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/dataclasses-python-guia-completo/</guid>
      <description>&lt;p&gt;Se você já criou classes em Python apenas para armazenar dados, sabe o quanto de código repetitivo isso envolve: &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt;, &lt;code&gt;__eq__&lt;/code&gt;&amp;hellip; tudo escrito manualmente. As &lt;strong&gt;dataclasses&lt;/strong&gt;, introduzidas no Python 3.7, resolvem exatamente esse problema, gerando automaticamente esses métodos a partir de simples anotações de tipo.&lt;/p&gt;&#xA;&lt;h2 id=&#34;o-que-são-dataclasses&#34;&gt;O Que São Dataclasses&lt;/h2&gt;&#xA;&lt;p&gt;Dataclasses são classes Python decoradas com &lt;code&gt;@dataclass&lt;/code&gt; que geram automaticamente métodos especiais como &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt;, &lt;code&gt;__eq__&lt;/code&gt; e outros. A ideia é simples: você declara os atributos com &lt;a href=&#34;https://python.dev.br/blog/tipagem-estatica-python-mypy/&#34;&gt;type hints&lt;/a&gt; e o Python cuida do resto.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pattern Matching em Python: Guia Completo do match/case | Python Brasil</title>
      <link>https://python.dev.br/blog/pattern-matching-python-match-case/</link>
      <pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/blog/pattern-matching-python-match-case/</guid>
      <description>&lt;p&gt;O &lt;strong&gt;Structural Pattern Matching&lt;/strong&gt; (correspondência de padrões estruturais) chegou ao Python na versão 3.10 e é uma das adições mais poderosas à linguagem nos últimos anos. Com a sintaxe &lt;code&gt;match/case&lt;/code&gt;, você pode escrever código mais expressivo, legível e robusto para lidar com dados complexos.&lt;/p&gt;&#xA;&lt;p&gt;Neste guia completo, vamos explorar tudo sobre pattern matching em Python: desde o básico até padrões avançados com guards, destructuring e classes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;o-que-é-pattern-matching&#34;&gt;O que é Pattern Matching?&lt;/h2&gt;&#xA;&lt;p&gt;Pattern matching é uma técnica que permite comparar um valor contra uma série de padrões e executar código baseado no padrão que corresponder. Se você já programou em &lt;a href=&#34;https://rustlang.com.br/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; onclick=&#34;umami.track(&#39;portfolio-site-click&#39;, { destination: &#39;rustlang.com.br&#39; })&#34;&gt;Rust&lt;/a&gt;, Scala ou Haskell, já conhece o conceito. Em Python, a sintaxe usa as palavras-chave &lt;code&gt;match&lt;/code&gt; e &lt;code&gt;case&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dataclass em Python: O que É e Como Funciona | Python Brasil</title>
      <link>https://python.dev.br/glossario/dataclass/</link>
      <pubDate>Sun, 22 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/glossario/dataclass/</guid>
      <description>&lt;h2 id=&#34;o-que-é-dataclass&#34;&gt;O que é Dataclass?&lt;/h2&gt;&#xA;&lt;p&gt;Uma &lt;strong&gt;dataclass&lt;/strong&gt; é uma forma simplificada de criar classes em Python que servem principalmente para &lt;strong&gt;armazenar dados&lt;/strong&gt;. Introduzida no Python 3.7 (PEP 557), ela gera automaticamente métodos como &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt; e &lt;code&gt;__eq__&lt;/code&gt;, reduzindo drasticamente o boilerplate.&lt;/p&gt;&#xA;&lt;p&gt;O resultado é código mais limpo, mais legível e menos propenso a erros de digitação nos métodos repetitivos.&lt;/p&gt;&#xA;&lt;h2 id=&#34;antes-e-depois-a-diferença-em-prática&#34;&gt;Antes e depois: a diferença em prática&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# SEM dataclass (muito código repetitivo)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;ProdutoAntigo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__repr__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Produto(nome=&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#39;, preco=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;, quantidade=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__eq__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;isinstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ProdutoAntigo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;bp&#34;&gt;NotImplemented&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# COM dataclass (limpo e conciso)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;dataclasses&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dataclass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@dataclass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Produto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;nome&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;preco&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;quantidade&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Produto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Notebook&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;3500.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Produto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Notebook&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;3500.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# Produto(nome=&amp;#39;Notebook&amp;#39;, preco=3500.0, quantidade=5)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;p1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;p2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;# True — __eq__ gerado automaticamente&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;a-função-field-em-detalhe&#34;&gt;A função field() em detalhe&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;field()&lt;/code&gt; controla o comportamento individual de cada campo:&lt;/p&gt;</description>
    </item>
    <item>
      <title>f-strings em Python: O que São e Como Funcionam | Python Brasil</title>
      <link>https://python.dev.br/glossario/f-strings/</link>
      <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/glossario/f-strings/</guid>
      <description>&lt;h2 id=&#34;o-que-são-f-strings&#34;&gt;O que são f-strings?&lt;/h2&gt;&#xA;&lt;p&gt;As &lt;strong&gt;f-strings&lt;/strong&gt; (formatted string literals) são a forma mais moderna e eficiente de &lt;strong&gt;formatar strings&lt;/strong&gt; em Python. Introduzidas no Python 3.6 pela PEP 498, elas permitem inserir expressões Python diretamente dentro de strings usando chaves &lt;code&gt;{}&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Para criar uma f-string, basta colocar a letra &lt;code&gt;f&lt;/code&gt; (ou &lt;code&gt;F&lt;/code&gt;) antes das aspas. Tudo dentro de &lt;code&gt;{}&lt;/code&gt; é avaliado como código Python no momento da execução — não é apenas substituição de texto, é avaliação de expressões completas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Type Hints: O que São e Como Funcionam | Python Brasil</title>
      <link>https://python.dev.br/glossario/type-hints/</link>
      <pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://python.dev.br/glossario/type-hints/</guid>
      <description>&lt;h2 id=&#34;o-que-são-type-hints&#34;&gt;O que são Type Hints?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Type hints&lt;/strong&gt; (dicas de tipo) são anotações que indicam os &lt;strong&gt;tipos esperados&lt;/strong&gt; de variáveis, parâmetros e retornos de funções em Python. Introduzidos no Python 3.5 (PEP 484), eles não alteram o comportamento do código em tempo de execução — o Python continua sendo uma linguagem de tipagem dinâmica — mas habilitam a &lt;strong&gt;detecção estática de bugs&lt;/strong&gt; por ferramentas como mypy e pyright, além de melhorar enormemente o autocompletar em editores como VS Code e PyCharm.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
