3.9.0 Python

Se ha lanzado una nueva versión estable del popular lenguaje de programación Python.

Python es un lenguaje de programación de alto nivel y de propósito general destinado a mejorar la productividad de los desarrolladores y la legibilidad del código. Las características principales son escritura dinámica, administración automática de memoria, introspección completa, mecanismo de manejo de excepciones, soporte para computación multiproceso y estructuras de datos de alto nivel.

Python es un lenguaje estable y extendido. Se utiliza en muchos proyectos y en diversas capacidades: como lenguaje de programación principal o para crear extensiones e integraciones de aplicaciones. Principales áreas de aplicación: desarrollo web, aprendizaje automático y análisis de datos, automatización y administración de sistemas. Python ocupa actualmente el tercer lugar en el ranking TÍOBE.

Cambios importantes:

Nuevo analizador de alto rendimiento basado en gramáticas PEG.

En la nueva versión, el analizador Python actual basado en gramáticas LL(1) (gramática KS) se reemplaza por un nuevo analizador estable y de alto rendimiento basado en PEG (gramática PB). Los analizadores de idiomas representados por gramáticas KS, como los analizadores LR, requieren un paso de análisis léxico especial que divide la entrada según espacios en blanco, puntuación, etc. Esto es necesario porque estos analizadores utilizan la preparación para procesar algunas gramáticas de KS en tiempo lineal. Las gramáticas RV no requieren un paso de análisis léxico separado y las reglas para ello se pueden establecer junto con otras reglas gramaticales.

Nuevos operadores y funciones.

Se han agregado dos nuevos operadores a la clase dict incorporada, | para fusionar diccionarios y |= para actualizar.

Se han agregado dos nuevas funciones a la clase str: str.removeprefix(prefijo) y str.removesuffix(suffix).

Sugerencias de tipos para tipos de colecciones integradas

Esta versión incluye soporte para la sintaxis del generador en todas las colecciones estándar disponibles actualmente.

def read_blog_tags(etiquetas: lista[cadena]) -> Ninguna:
para etiquetas en etiquetas:
print("Nombre de etiqueta", etiqueta)

Otros cambios

  • PEP 573 Acceso al estado del módulo mediante métodos de extensión C

  • PEP 593 Funciones flexibles y anotaciones variables

  • PEP 602 Python pasa a versiones estables anuales

  • PEP 614 Restricciones gramaticales relajantes para decoradores

  • Compatibilidad con la base de datos de zonas horarias de la IANA PEP 615 en la biblioteca estándar

  • BPO 38379 La recolección de basura no bloquea los objetos recuperados

  • BPO 38692 os.pidfd_open, para control de procesos sin carreras ni señales;

  • BPO 39926 Soporte Unicode actualizado a la versión 13.0.0

  • BPO 1635741, Python ya no tiene fugas al inicializar Python varias veces en el mismo proceso

  • Colecciones de Python (rango, tupla, conjunto, conjunto congelado, lista, dict) aceleradas con la llamada vectorial PEP 590

  • Algunos módulos de Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, Resource, time, _weakref) ahora usan 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) ahora usan la ABI estable definida por PEP 384.

Fuente: linux.org.ru

Añadir un comentario