Chega a nova versão estável do Python 3.12 e esses são seus novos recursos

Logotipo Python

Python é uma linguagem de programação de alto nível.

Após um ano de desenvolvimento, O lançamento da versão estável foi anunciado e também o início da fase de testes alfa da linguagem de programação Python 3.12 e Python 3.13 (respectivamente). Menciona-se que este novo ramo do Python 3.12 terá suporte por um ano e meio, após o qual, por mais três anos e meio, serão geradas correções para eliminar vulnerabilidades.

A nova versão do Python 3.12 apresentada vem com melhorias no flexibilidade da análise f-string. Com esta melhoria agora muitas restrições podem ser deixadas de lado, já que, por exemplo, agora você pode conter qualquer expressão válida em Python, incluindo expressões multilinhas, comentários, barras invertidas e sequências de escape Unicode. Além disso, strings internas agora permitem reutilizar as mesmas aspas, ou seja, aspas duplas agora podem ser reutilizadas dentro sem ter que mudar para aspas simples.

Por ejemplo:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Agora é possível aninhar arbitrariamente:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Outra das mudanças que se destaca é a suporte para subinterpretadores isolados e bloqueios globais separados, que vêm aumentar a eficiência do uso de recursos em sistemas multicore, uma vez que para diferentes intérpretes dentro de um processo o CPython permite que vários intérpretes rodem ao mesmo tempo em um processo. Da forma como está, o recurso está atualmente disponível apenas via C-API (o suporte à API Python aparecerá no próximo ramo principal).

Além disso, destaca-se também queO conteúdo informativo das mensagens de erro foi aumentado e o leque de exceções foi ampliado, oferecendo recomendações para eliminar erros tipográficos. Por exemplo, agora são exibidas sugestões para importar módulos de biblioteca padrão esquecidos e sugestões para prefixar “self”.

Adicionada a capacidade de usar o protocolo buffer no código Python. Classes que fornecem um método "__buffer__()" agora podem ser usadas como tipos que operam diretamente em dados binários na memória.

O módulo sys.monitoring é proposto para depuração e criação de perfil, permitindo monitorar eventos no CPython, como chamadas, retornos de funções, execução de linhas arbitrárias de código, exceções e transições com sobrecarga mínima.

O intérprete implementa suporte para o subsistema de desempenho do kernel Linux, que permite que nomes de funções Python sejam determinados durante a criação de perfil usando o utilitário de desempenho (anteriormente, apenas nomes de funções C eram determinados em rastreamentos).

Em relação às melhorias de desempenho, é mencionado que otimizações continuaram, com a qual Foi obtido um ganho total de desempenho estimado em 5%., também foi adicionado suporte experimental para o otimizador binário BOLT ao processo de construção, aumentando o desempenho em 1-5%, enquanto o desempenho do pacote asyncio melhorou significativamente (alguns testes mostram uma aceleração de 75%).

Foi implementada a expansão inline das compreensões de lista, o que acelera o trabalho com compreensões de lista em até duas vezes (para código que usa ativamente compreensões de lista, os testes mostraram um aumento geral de desempenho de 11%).

Para melhorar a segurança, implementações integradas de Os algoritmos SHA1, SHA3, SHA2-384, SHA2-512 e MD5 no hashlib foram substituídos com opções formalmente verificadas do projeto HACL* (implementações integradas são usadas apenas se o OpenSSL não estiver disponível).

Do outras mudanças que se destacam:

  • O módulo expandiu o suporte para Windows.
  • Python implementa proteção contra estouro de pilha.
    A criação da classe asyncio.Task foi agilizada.
  • O tamanho dos objetos Unicode foi reduzido em 8 a 16 bytes.
  • As operações com expressões regulares re.sub(), re.subn() e re.Pattern foram aceleradas.
  • A execução de verificações isinstance() para alguns protocolos foi acelerada de 2 a 20 vezes.
  • Significativamente (em alguns testes até 64%) as funções tokenize.tokenize() e tokenize.generate_tokens() foram aceleradas.
  • O carregamento de atributos e a chamada do método super() foram acelerados.
  • Uma nova sintaxe de anotação de tipo mais compacta foi proposta para classes e funções genéricas.
  • O módulo do navegador da web não oferece mais suporte a navegadores mais antigos, incluindo Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird e Firefox até a versão 36.
  • Em preparação para otimizações futuras, a representação interna de inteiros foi alterada.

Por último, mas não menos importante, como mencionado, o teste alfa do Python 3.13 começou, no qual apareceu um modo de compilação CPython sem bloqueio global de intérprete (GIL, Bloqueio Global de Intérprete).

O ramo Python 3.13 estará em alfa por sete meses, durante o qual novos recursos serão adicionados e bugs corrigidos de acordo com o novo cronograma de desenvolvimento, o trabalho em uma nova ramificação começa cinco meses antes do lançamento da ramificação anterior e no momento em que a próxima versão atinge o estágio de teste alfa.

Depois disso, as versões beta serão testadas por três meses, durante os quais será proibida a adição de novos recursos e toda atenção será dada à correção de bugs. Durante os últimos dois meses antes do lançamento, a filial estará na fase de release candidate, onde ocorrerá a estabilização final.

Enfim sim você está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.