Stiže nova stabilna verzija Pythona 3.12 i ovo su njegove nove karakteristike

python-logo

Python je programski jezik visokog nivoa.

Nakon godinu dana razvoja, Najavljeno je izlazak stabilne verzije kao i početak faze alfa testiranja programskog jezika Python 3.12 i Python 3.13 (respektivno). Napominje se da će ova nova grana Python-a 3.12 biti podržana godinu i po dana, nakon čega će se još tri i po godine generisati popravke za uklanjanje ranjivosti.

Nova verzija Pythona 3.12 koja je predstavljena dolazi sa poboljšanjima u fleksibilnost analize f-stringova. Sa ovim poboljšanjem sada mnoga ograničenja se mogu ostaviti po strani, budući da, na primjer, sada možete sadržavati bilo koji važeći izraz u Pythonu, uključujući višelinijske izraze, komentare, obrnute kose crte i Unicode izlazne sekvence. Dodatno, interni nizovi sada dozvoljavaju ponovnu upotrebu istih navodnika, tj. dvostruki navodniki sada se mogu ponovo koristiti unutar bez potrebe za prelaskom na jednostruke navodnike.

Na primjer:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Sada je moguće proizvoljno ugnijezditi:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Još jedna od promjena koja se ističe je podrška za izolovane podtumače i odvojene globalne brave, koji imaju za cilj da povećaju efikasnost korišćenja resursa u višejezgarnim sistemima, budući da za različite interpretatore unutar procesa CPython dozvoljava da više interpretatora radi u isto vreme u procesu. Kako sada stoji, funkcija je trenutno dostupna samo preko C-API-a (podrška za Python API će se pojaviti u sljedećoj velikoj grani).

Pored ovoga, ističe se i toInformativni sadržaj poruka o greškama je povećan a raspon izuzetaka je proširen, nudeći preporuke za uklanjanje tipografskih grešaka. Na primjer, sada se prikazuju prijedlozi za uvoz zaboravljenih modula standardne biblioteke i prijedlozi za dodavanje prefiksa “self”.

Dodata mogućnost korištenja bafer protokola u Python kodu. Klase koje pružaju metodu "__buffer__()" sada se mogu koristiti kao tipovi koji rade direktno na binarnim podacima u memoriji.

Modul sys.monitoring je predložen za otklanjanje grešaka i profiliranje, omogućavajući vam da nadgledate događaje u CPython-u kao što su pozivi, vraćanje funkcija, izvršavanje proizvoljnih linija koda, izuzeci i prijelazi uz minimalne troškove.

Interpretator implementira podršku za podsistem performansi Linux kernela, koji omogućava određivanje imena Python funkcija prilikom profiliranja pomoću uslužnog programa za performanse (ranije su se u tragovima određivala samo imena C funkcija).

Što se tiče poboljšanja performansi, spominje se da optimizacije su nastavljene, s kojim Dobijeno je ukupno povećanje performansi procijenjeno na 5%., također je dodano eksperimentalna podrška za BOLT binarni optimizator na proces izgradnje, povećavajući performanse za 1-5%, dok su performanse asyncio paketa značajno poboljšane (neki testovi pokazuju ubrzanje od 75%).

Implementirano je inline proširenje razumijevanja liste, što ubrzava rad sa razumijevanjima liste do dva puta (za kod koji aktivno koristi razumijevanje liste, testiranje je pokazalo ukupni porast performansi od 11%).

Da bi poboljšali sigurnost, ugrađene implementacije SHA1, SHA3, SHA2-384, SHA2-512 i MD5 algoritmi u hashlibu su zamijenjeni sa formalno verifikovanim opcijama iz HACL* projekta (ugrađene implementacije se koriste samo ako OpenSSL nije dostupan).

Of the druge promjene koji se ističu:

  • Modul ima proširenu podršku za Windows.
  • Python implementira zaštitu od prepunjavanja steka.
    Kreiranje klase asyncio.Task je ubrzano.
  • Veličina Unicode objekata je smanjena za 8 do 16 bajtova.
  • Operacije sa regularnim izrazima re.sub(), re.subn() i re.Pattern su ubrzane.
  • Pokretanje isinstance() provjera za neke protokole je ubrzano za 2 do 20 puta.
  • Značajno (u nekim testovima i do 64%) funkcije tokenize.tokenize() i tokenize.generate_tokens() su ubrzane.
  • Učitavanje atributa i pozivanje metode super() je ubrzano.
  • Predložena je nova, kompaktnija sintaksa anotacije tipa za generičke klase i funkcije.
  • Modul web pretraživača više ne podržava starije pretraživače uključujući Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird i Firefox do verzije 36.
  • U pripremi za buduće optimizacije, interni prikaz cijelih brojeva je promijenjen.

Na kraju, ali ne i najmanje važno, kao što je spomenuto, počelo je alfa testiranje Pythona 3.13, u kojem se pojavio način kompilacije CPython bez globalnog zaključavanja tumača (GIL, Globalno zaključavanje tumača).

Podružnica Python 3.13 će biti u alfa verziji sedam mjeseci, tokom kojeg će se dodati nove funkcije i popraviti greške prema novom rasporedu razvoja, rad na novoj grani počinje pet mjeseci prije izlaska prethodne grane i do trenutka kada sljedeća verzija dostigne alfa fazu testiranja.

Nakon toga, beta verzije će biti testirane tri mjeseca, tokom kojih će dodavanje novih funkcija biti zabranjeno i sva pažnja će se posvetiti ispravljanju grešaka. Tokom posljednja dva mjeseca prije puštanja, podružnica će biti u fazi kandidata za oslobađanje, gdje će se dogoditi konačna stabilizacija.

Napokon da zainteresovani ste da saznate više o tome, detalje možete provjeriti u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.