Python 3.11 ir pieejams ar veiktspējas uzlabojumiem, kešatmiņas pārveidošanu un daudz ko citu

Pitons

Python ir augsta līmeņa interpretēta programmēšanas valoda, kuras filozofija uzsver tās koda lasāmību.

Pēc gada attīstības ir izdota programmēšanas valodas Python 3.11 jaunā versija, jaunā filiāle tiks atbalstīta pusotru gadu, pēc tam vēl trīsarpus gadus tiks veidoti ielāpi ar ievainojamībām.

Tajā pašā laikā sākās Python 3.12 filiāles alfa testēšana (saskaņā ar jauno izstrādes grafiku darbs pie jaunas filiāles sākas piecus mēnešus pirms iepriekšējās filiāles izlaišanas un sasniedz alfa testēšanu līdz nākamās versijas izlaišanas brīdim).

Python 3.12 atzars alfa izlaidumos būs septiņus mēnešus, kuru laikā tiks pievienotas jaunas funkcijas un izlabotas kļūdas. Pēc tam trīs mēnešus notiks beta testēšana, kuras laikā jaunu funkciju pievienošana būs aizliegta un visa uzmanība tiks pievērsta kļūdu labojumiem. Pēdējos divus mēnešus pirms palaišanas filiāle būs palaišanas kandidāta stadijā, un tad notiks galīgā stabilizācija.

Galvenās Python 3.11 jaunās funkcijas

Šajā jaunajā versijā Ir veikts ievērojams darbs, lai optimizētu veiktspēju, jo jaunajā filiālē ir iekļautas saistītas izmaiņas ar funkciju izsaukumu paātrinājumu un iekļautu izvietošanu, tipisku operāciju ātru tulku izmantošana, kā arī Cinder un HotPy projektu sagatavotās optimizācijas. Atkarībā no slodzes veida koda izpildes ātrums palielinās no 10% līdz 60%. Vidēji veiktspēja, nokārtojot pyperformance testu komplektu, palielinājās par 25%.

Kešatmiņas mehānisms ir pārveidots baitkoda, kas samazināja tulka palaišanas laiku par 10–15%. Objektus ar kodu un baitkodu tagad statiski piešķir tulks, kas ļāva novērst no kešatmiņas iegūtā baitkoda atšķetināšanas darbības un objektu konvertēšanu ar kodu, lai tos ievietotu kaudzes atmiņā.

Pievienots atbalsts izņēmuma grupām, kas programmai dod iespēju vienlaikus izvirzīt un apstrādāt vairākus dažādus izņēmumus. Jauni izņēmumu veidi ExceptionGroup un BaseExceptionGroup tiek piedāvāti, lai grupētu vairākus izņēmumus, un tiek pievienota izteiksme "izņemot* ", lai atdalītu izņēmumus no grupas.

Pievienots īpašs LiteralString tips tik viens var ietvert burtiskas virknes, kas ir saderīgas ar veidu LiteralString (tas ir, tukšas virknes un LiteralString tipa virknes, bet ne patvaļīgas vai jauktas str tipa virknes). Tipu LiteralString var izmantot, lai ierobežotu virkņu argumentu nodošanu funkcijām, virkņu daļu patvaļīgu aizstāšanu, ja tas var izraisīt ievainojamības, piemēram, ģenerējot virknes SQL vaicājumiem vai čaulas komandām.

Papildus tam arī nodrošināta iespēja atzīmēt atsevišķus vārdnīcu elementus (TypedDict) ar karodziņiem Obligāti un Neobligāti, lai noteiktu obligātos un neobligātos laukus (pēc noklusējuma visi deklarētie lauki ir obligāti, ja kopējais parametrs nav iestatīts uz Viltus).

Pievienots @dataclass_transform klases, metodes un funkciju dekorētājs, ja tas ir norādīts, statiskā tipa pārbaudītājs apstrādā objektu tā, it kā tas izmantotu @dataclasses.dataclass dekorētāju.

Starp citām izmaiņām, kas izceļas šajā jaunajā versijā:

  • Pievienota iespēja regulārajās izteiksmēs izmantot atomu grupēšanu ((?>…)) un greizsirdīgus (īpašuma) kvantorus (*+, ++, ?+, {m,n}+).
  • Ir pievienots TypeVarTuple tips, kas ļauj izmantot mainīgo sugas, atšķirībā no TypeVar, kas aptver nevis vienu veidu, bet gan patvaļīgu skaitu veidu.
  • Standarta bibliotēkā ir iekļauts modulis tomllib ar TOML formāta parsēšanas funkcijām.
  • Klasei BaseException ir pievienota metode add_note(), kas ļauj izņēmumam pievienot teksta piezīmi, piemēram, lai pievienotu kontekstuālo informāciju, kas nebija pieejama izņēmuma izdarīšanas brīdī.
  • Īpašs veids Self ir pievienots, lai attēlotu pašreizējo privāto klasi. Self var izmantot, lai anotētu metodes, kas atgriež jūsu klases gadījumu vienkāršāk nekā izmantojot TypeVar.
  • Pievienota komandrindas opcija "-P" un vides mainīgais PYTHONSAFEPATH, lai atspējotu potenciāli nedrošo failu ceļu automātisko savienojumu ar sys.path.
  • Windows platformas py.exe utilīta ir ievērojami uzlabota, lai atbalstītu sintaksi "-V:". / " Papildus "- . ».
  • Daudzi C API makro ir pārveidoti par regulārām vai statiskām iekļautajām funkcijām
  • Moduļi uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev un sunau ir novecojuši un tiks noņemti no Python. 3.13 izlaidums.
  • Noņemtas PyUnicode_Encode* funkcijas.
  • TaskGroup klase tika pievienota asinhrono modulim, ieviešot asinhrono konteksta pārvaldnieku, kas gaida uzdevumu grupas pabeigšanu.
  • Uzdevumu pievienošana grupai tiek veikta, izmantojot metodi create_task().

Beidzot ja jūs interesē uzzināt vairāk par to, sīkāku informāciju varat pārbaudīt sadaļā šo saiti. 


Pievienot kā vēlamo avotu pakalpojumā Google