Lanzouse unha nova versión estable da popular linguaxe de programación Python.
Python é unha linguaxe de programación de alto nivel e de propósito xeral destinada a mellorar a produtividade dos desenvolvedores e a lexibilidade do código. As principais características son a escritura dinámica, a xestión automática da memoria, a introspección completa, o mecanismo de manexo de excepcións, o soporte para a computación multiproceso e as estruturas de datos de alto nivel.
Python é unha linguaxe estable e estendida. Utilízase en moitos proxectos e con diversas capacidades: como linguaxe de programación principal ou para crear extensións e integracións de aplicacións. Principais áreas de aplicación: desenvolvemento web, aprendizaxe automática e análise de datos, automatización e administración de sistemas. Actualmente Python ocupa o terceiro lugar na clasificación TIOBE.
Principais cambios:
Novo analizador de alto rendemento baseado en gramáticas PEG.
Na nova versión, o analizador actual de Python baseado en gramáticas LL(1) (gramática KS) substitúese por un novo analizador estable e de alto rendemento baseado en PEG (gramatica PB). Os analizadores para linguas representadas polas gramáticas KS, como os analizadores LR, requiren un paso especial de análise léxica que divide a entrada segundo espazos en branco, puntuación, etc. Isto é necesario porque estes analizadores usan a preparación para procesar algunhas gramáticas KS en tempo lineal. As gramáticas RV non requiren un paso de análise léxico separado, e as regras para iso pódense establecer xunto con outras regras gramaticais.
Novos operadores e funcións
Engadíronse dous novos operadores á clase dict incorporada, | para combinar dicionarios e |= para actualizar.
Engadíronse dúas novas funcións á clase str: str.removeprefix(prefixo) e str.removesuffix(sufixo).
Suxestión de tipo para tipos de colección incorporados
Esta versión inclúe soporte para a sintaxe do xerador en todas as coleccións estándar dispoñibles actualmente.
def read_blog_tags(etiquetas: lista[str]) -> Ningún:
para etiquetas en etiquetas:
print("Nome da etiqueta", etiqueta)
Outros cambios
-
PEP 573 Acceso ao estado do módulo mediante métodos de extensión C
-
PEP 593 Funcións flexibles e anotacións variables
-
PEP 602 Python pasa a versións anuais estables
-
PEP 614 Restricións gramaticais relaxantes nos decoradores
-
Soporte de base de datos de fusos horarios PEP 615 IANA na biblioteca estándar
-
BPO 38379 A recollida de lixo non bloquea os obxectos recuperados
-
BPO 38692 os.pidfd_open, para o control de procesos sen carreiras e sinais;
-
BPO 39926 Compatibilidade con Unicode actualizada á versión 13.0.0
-
BPO 1635741, Python xa non se filtra ao inicializar Python varias veces no mesmo proceso
-
Coleccións de Python (rango, tupla, conxunto, conxunto conxelado, lista, dict) aceleradas coa chamada vectorial PEP 590
-
Algúns módulos de Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) agora usan a inicialización polifásica como se define en PEP 489
-
Varios módulos de biblioteca estándar (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) agora usan o ABI estable definido por PEP 384.
Fonte: linux.org.ru