Python 3.11 arriba amb millores de rendiment, redisseny en emmagatzematge en memòria cau i més

Pitó

Python és un llenguatge d'alt nivell de programació interpretat la filosofia del qual fa èmfasi en la llegibilitat del seu codi

Després d'un any de desenvolupament, s'ha publicat la nova versió del llenguatge de programació Python 3.11, la nova branca serà compatible durant un any i mig, després de la qual cosa es formaran pegats amb vulnerabilitats durant altres tres anys i mig.

Alhora, van començar les proves alfa de la branca Python 3.12 (d'acord amb el nou cronograma de desenvolupament, el treball en una nova branca comença cinc mesos abans del llançament de la branca anterior i arriba a l'etapa de prova alfa al moment de la propera versió).

La branca de Python 3.12 estarà en versions alfa durant set mesos, durant els quals s'afegiran noves funcions i es corregiran errors. Després d'això, es faran proves beta durant tres mesos, durant els quals es prohibirà l'addició de noves funcions i es prestarà tota l'atenció a la correcció d'errades. Els darrers dos mesos abans del llançament, la sucursal estarà a l'etapa de candidat a llançament, moment en què es realitzarà l'estabilització final.

Principals novetats de Python 3.11

En aquesta nova versió s'ha fet un treball significatiu per optimitzar el rendiment, doncs la nova branca inclou canvis relacionats amb l'acceleració i el desplegament en línia de trucades a funcions, lús dintèrprets ràpids doperacions típiques, així com optimitzacions preparades pels projectes Cinder i HotPy. Segons el tipus de càrrega, la velocitat dexecució del codi augmenta entre un 10 % i un 60 %. De mitjana, el rendiment en passar el conjunt de proves de pyperformance va augmentar en un 25%.

S'ha redissenyat el mecanisme d'emmagatzematge a la memòria cau del codi de bytes, cosa que es va reduir el temps d'inici de l'intèrpret en un 10-15%. Els objectes amb codi i codi de bytes ara són assignats estàticament per l'intèrpret, cosa que va fer possible eliminar les etapes de desentranyar el codi de bytes extret del memòria cau i convertir objectes amb codi per col·locar-los a la memòria dinàmica.

es va agregar suport per a grups d'excepcions, la qual cosa dóna al programa la capacitat de generar i processar diverses excepcions diferents alhora. Es proposen nous tipus d'excepcions ExceptionGroup i BaseExceptionGroup per agrupar diverses excepcions i ajuntar-les, i s'afegeix l'expressió except* per separar les excepcions d'un grup.

S'ha afegit un tipus LiteralString especial que només pot incloure cadenes literals que siguin compatibles amb el tipus LiteralString (és a dir, cadenes nues i cadenes del tipus LiteralString, però no cadenes arbitràries o combinades del tipus str). El tipus LiteralString es pot utilitzar per limitar el pas d'arguments de cadena a funcions, la substitució arbitrària de parts de cadenes on pot generar vulnerabilitats, per exemple, en generar cadenes per a consultes SQL o ordres de shell.

A més, també, es proporciona la capacitat de marcar elements individuals de diccionaris escrits (TypedDict) amb marques Requerit i No requerit per determinar els camps obligatoris i opcionals (per defecte, tots els camps declarats són obligatoris si el paràmetre total no s'estableix a Fals).

S'ha afegit el decorador de classe, mètode i funció @dataclass_transform, quan s'especifica, el verificador de tipus estàtic tracta l'objecte com si fes servir el decorador @dataclasses.dataclass.

Dels altres canvis que es destaquen d'aquesta nova versió:

  • S'hi va afegir la capacitat d'usar agrupació atòmica ((?>…)) i quantificadors gelosos (possessius) (*+, ++, ?+, {m,n}+) en expressions regulars.
  • S'ha afegit el tipus TypeVarTuple, que permet l'ús de genèrics variables, a diferència de TypeVar, que cobreix no un tipus sinó un nombre arbitrari de tipus.
  • La biblioteca estàndard inclou el mòdul tomllib amb funcions per analitzar el format TOML.
  • El mètode add_note() es va afegir a la classe BaseException, que permet adjuntar una nota de text a l'excepció, per exemple, per afegir informació contextual que no estava disponible en el moment que es va llançar l'excepció.
  • S'ha afegit un tipus especial Self per representar la classe privada actual. Self es pot utilitzar per anotar mètodes que tornen una instància de la seva classe duna manera més simple que utilitzar TypeVar.
  • S'ha afegit l'opció de línia d'ordres "-P" i la variable d'entorn PYTHONSAFEPATH per desactivar la connexió automàtica de rutes de fitxers potencialment insegures a sys.path.
  • La utilitat pi.exe per a la plataforma Windows s'ha millorat significativament per admetre la sintaxi «-V: / » a més de «- . ».
  • Moltes macros de l'API de C han esdevingut funcions en línia regulars o estàtiques
  • Els mòduls uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev i sunau han quedat obsolets i s'eliminaran a Python. 3.13 alliberament.
  • S'han eliminat les funcions de PyUnicode_Encode*.
  • La classe TaskGroup es va afegir al mòdul asyncio amb la implementació d'un administrador de context asíncron que espera que es completi el grup de tasques.
  • L'addició de tasques a un grup es fa mitjançant el mètode create_task().

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls a el següent enllaç. 


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.