Pular para o conteúdo

Python 3.15.0 chega com lazy imports e frozendict

O Python 3.15.0 chegou em 9 de outubro com 5.643 commits de 1.012 colaboradores: lazy imports, um frozendict embutido, UTF-8 por padrão e um JIT mais rápido.

Por Tech AI Wire Team

4 min de leitura

XLinkedIn
Captura de tela da publicação do Python Insider «Python 3.15.0 (final) is here!», de Hugo van Kemenade, datada de 9 de outubro de 2026, com a arte de lançamento do 3.15.

Em números

commits since Python 3.14
5,643
contributors to the release
1,012
JIT speedup on x86-64 Linux, geometric mean
7-8%
roughly when security updates end, per PEP 602
2031

O Python 3.15.0 foi lançado em 9 de outubro de 2026, a versão anual de recursos da linguagem. Ele traz lazy imports explícitos, um tipo frozendict embutido e UTF-8 como codificação de texto padrão. "O Python 3.15.0 é a mais nova versão principal da linguagem de programação Python", escreveu o gerente de lançamento Hugo van Kemenade no Python Insider. O lançamento reuniu 5.643 commits de 1.012 colaboradores. Ele chega uma semana depois do planejado inicialmente, após um terceiro release candidate surpresa corrigir bugs de última hora nos lazy imports.

Os principais recursos

Cada grande mudança vem de uma PEP, uma Python Enhancement Proposal, o documento de design de um recurso. As notas de versão listam estas:

PEPRecursoO que faz
810Lazy imports explícitosPermite que o código adie o carregamento de um módulo até o primeiro uso, para uma inicialização mais rápida
814frozendictUm dicionário embutido que não pode ser alterado depois de criado
661Tipo sentinelaUm tipo embutido para valores marcadores únicos
686UTF-8 por padrãoO Python lê e grava texto como UTF-8, a menos que receba outra instrução
798Desempacotamento em comprehensionsPermite o desempacotamento dentro de comprehensions
829Arquivos de inicialização de pacotesNovos arquivos de configuração de inicialização para pacotes
799Pacote de profilingAdiciona o profiler por amostragem Tachyon
803, 820, 793ABI estável free-threadedUma única extensão compilada pode funcionar em builds free-threaded
831Frame pointersAtivados por padrão nas builds

A tipagem também recebe três mudanças: as PEPs 728, 747 e 800. O compilador JIT experimental, as mensagens de erro e as cores da linha de comando também foram melhorados, segundo a página What's New.

A mudança para UTF-8 importa mais no Windows, informa o Linux Compatible. Código que dependia da antiga codificação padrão pode voltar a ela com PYTHONUTF8=0.

Mais rápido, mas não em todo lugar

O JIT, um compilador que transforma código Python executado com frequência em código de máquina enquanto ele roda, agora está mais rápido. O Python Insider informa estes ganhos em média geométrica:

PlataformaGanho do JIT
Linux x86-647-8% sobre o interpretador padrão
macOS AArch6411-12% sobre o interpretador tail-calling

Os resultados variam muito conforme a carga de trabalho. Benchmarks individuais vão de cerca de 15% mais lentos a mais de 100% mais rápidos, informa o Linux Compatible.

Os instaladores oficiais também mudaram. As builds de 64 bits para Windows agora usam o interpretador tail-calling, uma forma mais rápida de executar o loop principal do Python. O Linux Compatible estima esse ganho em 15-20%, e em até 40% para scripts pequenos, de longa duração e em Python puro. Os instaladores oficiais para macOS agora incluem suporte a free-threading por padrão. O free-threading permite que o Python rode código em vários núcleos de CPU ao mesmo tempo, sem o global interpreter lock.

Problema conhecido no macOS 27

Há um alerta para usuários de Mac. No macOS 27.0, o IDLE e outros apps tkinter "podem travar ao usar um comando de menu do aplicativo que abre uma caixa de diálogo", diz o Python Insider. O app então precisa ser encerrado à força.

A equipe do Python atribui o problema a uma mudança no sistema operacional e acredita que ele afeta todas as versões do Tk, o toolkit que o tkinter usa. Ele é acompanhado como issue #158053. A página da versão sugere adiar o macOS 27.0 se você depende de apps Tk.

O que foi descontinuado

Três coisas estão de saída, segundo as notas de versão e o Linux Compatible:

  • O módulo profile, escrito em Python puro, está descontinuado e será removido no Python 3.17. O cProfile continua.
  • Linhas que executam código em arquivos .pth estão descontinuadas em favor dos novos arquivos de inicialização da PEP 829.
  • As funções C PyGILState_* recebem soft deprecation, mas não são removidas.

O Python 3.15 recebe dois anos de correções de bugs e, depois, correções de segurança até cerca de outubro de 2031, informa o Linux Compatible, seguindo o calendário da PEP 602.

O que isso significa para desenvolvedores

  • Experimente lazy imports em ferramentas que iniciam devagar. Ferramentas de linha de comando e apps com imports pesados são os que mais ganham. Teste qualquer módulo que dependa de código executado no momento do import, já que adiar o import muda quando esse código roda.
  • Verifique o tratamento de texto no Windows. O UTF-8 agora é o padrão. Rode os seus testes de entrada e saída de arquivos no Windows e use PYTHONUTF8=0 só como solução provisória.
  • Use frozendict para configurações fixas. Um dicionário que não pode ser alterado é mais seguro para configuração e pode ser usado onde um valor hashable é necessário.
  • Faça benchmarks antes de contar com o JIT. Os ganhos médios são modestos, e algumas cargas de trabalho ficam mais lentas. Meça o seu próprio código.
  • Adie o macOS 27.0 se você usa tkinter. O IDLE e os apps Tk podem travar até o bug ser corrigido.
  • Abandone o profile agora. Ele desaparece no Python 3.17, então mude para o cProfile ou para o novo pacote de profiling.

Antes de atualizar sistemas de produção, confirme que as suas principais dependências suportam o 3.15.

Fontes

  1. Python 3.15.0 final is here! - Python Insider
  2. Python Release Python 3.15.0 - Python.org
  3. Python 3.15.0 (final) is here! - Discussions on Python.org
  4. What's new in Python 3.15 - Python documentation
  5. Python 3.15.0 Is Out: Lazy Imports, frozendict, and Faster Speeds - Linux Compatible

Artigos relacionados

An open silver laptop on a conference table, its lid carrying a Python logo sticker and a Rust logo sticker side by side, with a city skyline through tall windows behind it.
Programação

Python Language Summit 2026 debate Rust e um novo GC

Os relatos do Python Language Summit 2026 saíram: 47 desenvolvedores do núcleo discutiram Rust no CPython, um novo coletor de lixo, um namespace std e uma inicialização mais rápida.