Uma nova versão estável da popular linguagem de programação Python foi lançada.
Python é uma linguagem de programação de alto nível e uso geral que visa melhorar a produtividade do desenvolvedor e a legibilidade do código. Os principais recursos são digitação dinâmica, gerenciamento automático de memória, introspecção completa, mecanismo de tratamento de exceções, suporte para computação multithread e estruturas de dados de alto nível.
Python é uma linguagem estável e difundida. É usado em muitos projetos e em diversas capacidades: como linguagem de programação primária ou para criar extensões e integrações de aplicativos. Principais áreas de aplicação: desenvolvimento web, aprendizado de máquina e análise de dados, automação e administração de sistemas. Python atualmente ocupa o terceiro lugar no ranking TIOBE.
Grandes mudanças:
Novo analisador de alto desempenho baseado em gramáticas PEG.
Na nova versão, o analisador Python atual baseado em gramáticas LL(1) (gramática KS) é substituído por um novo analisador estável e de alto desempenho baseado em PEG (gramática PB). Os analisadores de idiomas representados por gramáticas KS, como os analisadores LR, exigem uma etapa especial de análise lexical que divide a entrada de acordo com espaços em branco, pontuação e assim por diante. Isto é necessário porque esses analisadores usam a preparação para processar algumas gramáticas KS em tempo linear. As gramáticas RV não requerem uma etapa separada de análise lexical, e as regras para isso podem ser estabelecidas junto com outras regras gramaticais.
Novos operadores e funções
Dois novos operadores foram adicionados à classe dict integrada, | para mesclar dicionários e |= para atualização.
Duas novas funções foram adicionadas à classe str: str.removeprefix(prefix) e str.removesuffix(suffix).
Dicas de tipo para tipos de coleção integrados
Esta versão inclui suporte para sintaxe de gerador em todas as coleções padrão disponíveis atualmente.
def read_blog_tags(tags: lista[str]) -> Nenhum:
para tags em tags:
print("Nome da etiqueta", etiqueta)
Outras mudanças
-
PEP 573 acessando o estado do módulo usando métodos de extensão C
-
Funções flexíveis e anotações de variáveis PEP 593
-
PEP 602 Python passa para versões estáveis anuais
-
PEP 614 Restrições gramaticais relaxantes para decoradores
-
PEP 615 Suporte ao banco de dados de fuso horário da IANA na biblioteca padrão
-
BPO 38379 Coleta de lixo não bloqueia objetos recuperados
-
BPO 38692 os.pidfd_open, para controle de processos sem corridas e sinais;
-
Suporte Unicode BPO 39926 atualizado para a versão 13.0.0
-
BPO 1635741, Python não vaza mais ao inicializar o Python várias vezes no mesmo processo
-
Coleções Python (range, tuple, set, frozenset, list, dict) aceleradas com chamada de vetor PEP 590
-
Alguns módulos Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operador, recurso, tempo, _weakref) agora usam inicialização polifásica conforme definido em PEP 489
-
Vários módulos de biblioteca padrão (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) agora usam a ABI estável definida pelo PEP 384.
Fonte: linux.org.ru