Lëshimi i gjuhës së programimit Python 3.8

Pasë një vit e gjysmë zhvillimi është paraqitur lëshimi i rëndësishëm i gjuhës së programimit Python 3.8. Përditësimet korrigjuese për degën Python 3.8 planohet do të lëshohen për 18 muaj. E shkeljet kritike do të rregullohen për 5 vjet deri në tetor 2024. Përditësimet korrigjuese për degën 3.8 do të lëshohen çdo dy muaj, me lëshimin e parë korrigjuese Python 3.8.1 të parashikuar për në dhjetor.

Mes gjërave të reja të shtuar noviteteve:

  • MbĂ«shtetje operacionet e caktimit brenda shprehjeve komplekse. Me ndihmĂ«n e operatorit tĂ« ri «:=» tani Ă«shtĂ« e mundur tĂ« kryhen operacione caktimi brenda shprehjeve tĂ« tjera, pĂ«r shembull, pĂ«r tĂ« shmangur thirrjen e dyfishtĂ« tĂ« funksioneve nĂ« operatorĂ« kushtorĂ« dhe gjatĂ« pĂ«rcaktimit tĂ« cikleve:

    if (n := len(a)) > 10:
    


    while (block := f.read(256)) != »:
    


  • MbĂ«shtetje sintaksit e re pĂ«r caktimin e argumenteve tĂ« funksionit. GjatĂ« renditjes sĂ« argumenteve gjatĂ« pĂ«rcaktimit tĂ« funksionit, tani mund tĂ« specifikohet shenja "/", qĂ« lejon ndarjen e argumenteve qĂ« mund tĂ« marrin vlerĂ«n vetĂ«m sipas renditjes sĂ« vlerave gjatĂ« thirrjes sĂ« funksionit, nga argumentet qĂ« lejojnĂ« caktimin nĂ« rend tĂ« rastĂ«sishĂ«m (sintaksisi "ndĂ«rlidhje=vlerĂ«"). Perspektivisht, kjo mundĂ«si e re lejon qĂ« nĂ« funksionet e gjuhĂ«s Python tĂ« imitohet plotĂ«sisht sjellja e funksioneve ekzistuese nĂ« gjuhĂ«n C, si dhe tĂ« shmangen lidhjet me emra tĂ« veçantĂ«, pĂ«r shembull, nĂ« rast se emri i parametrave planifikohet tĂ« ndryshohet nĂ« tĂ« ardhmen.

    Flamuri "/" plotëson më parë të shtuarin shenjë "*", që ndan variablat për të cilat zbatohet vetëm caktimi në formën "ndërlidhje=vlerë". Për shembull, në funksionin "def f(a, b, /, c, d, *, e, f):" variablat "a" dhe "b" mund të caktohen vetëm sipas renditjes së vlerave,
    variablat "e" dhe "f", vetëm përmes caktimit "ndërlidhje=vlerë", ndërsa variablat "c" dhe "d" në cilindo nga këto mënyra:

    f(10, 20, 30, 40, e=50, f=60)
    f(10, 20, c=30, d=40, e=50, f=60)

  • Shtuar API i ri i C
    për konfigurimin e parametrave të inizializimit të Python, duke lejuar kontrollin e plotë të gjithë konfigurimit dhe duke ofruar mjete të avancuara për përpunimin e gabimeve. API i propozuar e thjeshton integrimin e funksionalitetit të interpreterit Python në aplikacione të tjera të shkruara në gjuhën C;
  • E realizuar protokollin e ri Vectorcall pĂ«r qasje mĂ« tĂ« shpejtĂ« nĂ« objektet e shkruara nĂ« gjuhĂ«n C. NĂ« CPython 3.8, qasja nĂ« Vectorcall Ă«shtĂ« ende e kufizuar pĂ«r pĂ«rdorim tĂ« brendshĂ«m, konvertimi nĂ« API publik pritet nĂ« CPython 3.9;
  • Shtuar thirrjet e Runtime Audit Hooks, duke u ofruar aplikacioneve dhe framework-eve nĂ« gjuhĂ«n Python qasje nĂ« informacione tĂ« niveauve tĂ« ulĂ«ta pĂ«r zhvillimin e skenarĂ«ve pĂ«r auditimin e veprimeve tĂ« kryera (p.sh., mund tĂ« gjurmohet importimi i moduleve, hapja e skedarĂ«ve, pĂ«rdorimi i gjurmimit, qasja nĂ« socket-e rrjeti, ekzekutimi i kodit pĂ«rmes exec, eval dhe run_mod);
  • NĂ« modul pickle Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r protokollin Pickle 5, i pĂ«rdorur pĂ«r serializimin dhe deserializimin e objekteve. Pickle lejon optimizimin e transmetimit tĂ« volumeve tĂ« mĂ«dha tĂ« tĂ« dhĂ«nave midis proceseve Python nĂ« konfigurime multi-bĂ«rthamor dhe multi-nod, duke reduktuar numrin e operacioneve tĂ« kopjimit tĂ« memories dhe duke pĂ«rdorur teknika tĂ« tjera optimizimi, si pĂ«r shembull angazhimin e algoritmeve tĂ« kompresimit tĂ« specializuara pĂ«r tĂ« dhĂ«na tĂ« caktuara. Versioni i pestĂ« i protokollit Ă«shtĂ« i njohur pĂ«r shtimin e modalitetit tĂ« transmetimit tĂ« veçantĂ« (out-of-band), nĂ« tĂ« cilin tĂ« dhĂ«nat mund tĂ« transmetohen veçmas nga rrjedha kryesore pickle.
  • Versioni i katĂ«rt i protokollit Pickle Ă«shtĂ« aktivizuar si parazgjedhje, i cili krahasuar me versionin e tretĂ«, qĂ« ishte parazgjedhje mĂ« parĂ«, lejon njĂ« performancĂ« mĂ« tĂ« lartĂ« dhe reduktimin e madhĂ«sisĂ« sĂ« tĂ« dhĂ«nave tĂ« transmetuara.
  • NĂ« modul typing janĂ« paraqitur disa mundĂ«si tĂ« reja:
    • Klasa TypedDict pĂ«r tabela asociative, nĂ« tĂ« cilat informatat pĂ«r llojin e tĂ« dhĂ«nave tĂ« lidhura me çelĂ«sat janĂ« shprehur qartĂ« ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Tipo Literal, duke lejon qĂ« ta kufizoni parametrin ose vlerĂ«n e kthyer nĂ« disa vlera tĂ« paracaktuara («Literal[‘connected’, ‘disconnected’]».
    • Konstruksioni «Final«, qĂ« ofron mundĂ«sinĂ« pĂ«r tĂ« pĂ«rcaktuar vlerat e variablave, funksioneve, metodave dhe klasave qĂ« nuk mund tĂ« ndryshohen ose riemĂ«rohen («pi: Final[float] = 3.1415926536».
  • Shtuar mundĂ«sia e caktimit tĂ« njĂ« cache pĂ«r skedarĂ« tĂ« pĂ«rpiluar me bytecode, tĂ« ruajtur nĂ« njĂ« pemĂ« tĂ« ndarĂ« FS dhe tĂ« ndarĂ« nga katalogĂ«t e kodit. Rruga pĂ«r ruajtjen e skedarĂ«ve me bytecode pĂ«rcaktohet pĂ«rmes variablĂ«s PYTHONPYCACHEPREFIX ose opsionit «-X pycache_prefix»;
  • Implementuar mundĂ«sia pĂ«r tĂ« krijuar ndĂ«rtimet e shfrytĂ«zuesve tĂ« Python, qĂ« pĂ«rdorin ABI identike me atĂ« tĂ« versioneve stabile, duke lejuar qĂ« nĂ« ndĂ«rtimet e shfrytĂ«zuesve tĂ« ngarkohen zgjerime tĂ« shkruara nĂ« gjuhĂ«n C, tĂ« ndĂ«rtuara pĂ«r versione stabile;
  • NĂ« f-strings (literalet e formatueshme me prefiks ‘f’) Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r operatorin «=» (p.sh., «f'{expr=}'»), duke lejuar qĂ« tĂ« konvertohet shprehja nĂ« tekst pĂ«r tĂ« lehtĂ«suar debuggimin. PĂ«r shembull:

    â€șâ€șâ€ș user = ‘eric_idle’
    â€șâ€șâ€ș member_since = date(1975, 7, 31)
    â€șâ€șâ€ș f'{user=} {member_since=}'
    «user=’eric_idle’ member_since=datetime.date(1975, 7, 31)»

  • Shprehja «continue» lejohet tĂ« pĂ«rdoret brenda bllokut pĂ«rfundimisht;
  • Moduli i ri Ă«shtĂ« shtuar multiprocessing.shared_memory, qĂ« lejon pĂ«rdorimin e segmenteve tĂ« kujtesĂ«s sĂ« pĂ«rbashkĂ«t nĂ« konfigurime multi-procesi;
  • NĂ« platformĂ«n Windows realizimi i asyncio Ă«shtĂ« transferuar pĂ«r tĂ« pĂ«rdorur klasĂ«n ProactorEventLoop;
  • Performanca e instruksionit LOAD_GLOBAL Ă«shtĂ« rritur me rreth 40% falĂ« pĂ«rdorimit tĂ« mekanizmit tĂ« ri pĂ«r mbajtjen nĂ« cache tĂ« kodit tĂ« objektit.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster