Accueil Astuces et Informations Python 3.11 lega con mejoras de rendimiento, rediseño en almacenamiento en caché...

Python 3.11 lega con mejoras de rendimiento, rediseño en almacenamiento en caché y mas

6
0
Python

Python es un lenguaje de alto nivel de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código

Después de un año de desarrollo, il a publié la nouvelle version de la langue de programmation Python 3.11la nueva rama será compatible durante un año y medio, después de lo cual se formarán parches con vulnerabilidades durante otros tres años y medio.

Al mismo tiempo, comenzaron las pruebas alfa de la rama Python 3.12 (de acuerdo con el nuevo cronograma de desarrollo, el trabajo en una nueva rama comienza cinco meses antes del lanzamiento de la rama anterior y llega a la etapa de prueba alfa en el momento de la próxima versión).

La rama de Python 3.12 estará en versiones alfa durante siete meses, durante los cuales se agregarán nuevas funciones y se corregirán errores. Después de eso, se realizarán pruebas beta durante tres meses, durante los cuales se prohibirá la adición de nuevas funciones y se prestará toda la atención a la corrección de errores. Los últimos dos meses antes del lanzamiento, la sucursal estará en la etapa de candidato a lanzamiento, momento en el que se realizará la estabilización final.

Principales nouveautés de Python 3.11

En esta nouvelle version se han realizado un trabajo significativo para optimizar el rendimientopues la nueva rama incluye cambios relacionados con la aceleración y el despliegue en línea de llamadas a funciones, el uso de intérpretes rápidos de operaciones típicas, así como optimizaciones preparadas por los proyectos Cinder and HotPy. Según el tipo de cargo, la velocidad de ejecución del código aumenta entre un 10 % y un 60 %. En promedio, el rendimiento al pasar el conjunto de pruebas de pyperformance aumentó en un 25 %.

Se ha rediseñado el mecanismo de almacenamiento en caché del código de bytes, lo que se redujo el tiempo de inicio del intérprete en un 10-15 %. Los objets con código y código de bytes ahora son asignados estáticamente por el intérprete, lo que hizo posible eliminar las etapas de desentrañar el código de bytes extraído del caché y convert objetos con código para colocarlos in la memoria dinámica.

Se agrégé soporte para grupos de excepciones, lo que le da al programa la capacidad de generar y procesar varias excepciones diferentes al mismo tiempo. Se proponen nuevos tipos de excepciones ExceptionGroup y BaseExceptionGroup para agrupar varias excepciones y juntarlas, y se regroupe l’expression « except* » para separar les excepciones de un grupo.

Se ha agregado un tipo LiteralString especial que seul puede incluir cadenas literales que sean compatibles con el tipo LiteralString (es decir, cadenas desnudas y cadenas del tipo LiteralString, pero no cadenas arbitrarias o combinadas del tipo str). El tipo LiteralString se peut utiliser pour limiter le pas d’arguments de cadena a funciones, la substitución arbitraria de partes de cadenas en las que puede generar vulnerabilidades, por ejemplo, al generar cadenas para consultas SQL o comandos de shell.

Ademas de ello, tambien se proporciona la capacidad de marcar elementos individuales de diccionarios escritos (TypedDict) con marcas Requerido y No requerido para determinar los campos obligatorios y opcionales (de manera predeterminada, todos los campos declarados son obligatorios si el parámetro total no se establece en Faussi).

Se regroupe le décorateur de classe, méthode et fonction @dataclass_transformcuando se especifica, el verificador de tipo estático trata el objeto como si usara el decorador @dataclasses.dataclass.

De los demás cambios que se destacan de esta nouvelle version :

  • Se agregó la capacidad de usar agrupación atómica ((?>…)) y cuantificadores celosos (posesivos) (*+, ++, ?+, {m,n}+) en expresiones regulares.
  • Se hagregado el tipo TypeVarTuple, that allowe el uso of genericos variables, a diferencia of TypeVar, that cubre no un tipo, sino un número arbitrario de tipos.
  • La biblioteca estándar inclut le module tomllib avec des fonctions pour analyser le format TOML.
  • La méthode add_note() est agrégée à la classe BaseException, qui permet d’ajouter une note de texte à l’exception, par exemple, pour une information contextuelle agrégée qui n’est pas disponible dans le moment en ce qu’elle lance l’exception.
  • Se ha agregado un tipo especial Self para representar la clase privada actual. Self se puede usar para anotar méthodos que devuelven una instancia de su clase de una manera más simple que usar TypeVar.
  • Se regroupe l’option de ligne de commande « -P » et la variable de retour PYTHONSAFEPATH pour désactiver la connexion automatique des opérations d’archivage potentiellement insécurisées à sys.path.
  • L’utilisation de py.exe pour la plate-forme Windows est significativement améliorée pour admettre la sintaxe “-V :/» además de « –.».
  • Beaucoup de macros de l’API de C peuvent être converties en fonctions en lignes régulières ou esthétiques
  • Les modules uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev y sunau ont été obsolètes et éliminés en Python. 3.13 libération.
  • Se supprime les fonctions de PyUnicode_Encode*.
  • La classe TaskGroup est agrégée au module asynchrone avec la mise en œuvre d’un administrateur de contexte asíncrono qui espera un que se complète le groupe de tareas.
  • L’adición de tareas a un grupo se realiza mediante el método create_task().

Enfin si estás interesado en poder conocer más al respectopuedes consultar los detalles en el siguiente enlace.