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

Pas pas një viti e gjysmë zhvillimi u paraqit lëshim të rëndësishëm të gjuhës programore Python 3.8. Përditësime korrigjuese për degën Python 3.8 parashihet do të bëhen për 18 muaj. Vulnerabilitetet kritike do të rregullohen për 5 vjet deri në tetor 2024. Përditësimet korrigjuese për degën 3.8 do të dalin çdo dy muaj, ndarja e parë e rregullimit Python 3.8.1 është planifikuar për dhjetor.

Ndër shtesat novitete:

  • MbĂ«shtetje operacioneve tĂ« caktimit brenda shprehjeve tĂ« komplikuara. Me ndihmĂ«n e operatorit tĂ« ri «:=» tani Ă«shtĂ« e mundur tĂ« kryhen operacione caktimi vlerash brenda shprehjeve tĂ« tjera, pĂ«r shembull, pĂ«r tĂ« shmangur thirrjen e dyfishtĂ« tĂ« funksioneve nĂ« operatorĂ«t kushtorĂ« dhe kur pĂ«rcaktohen ciklet:

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


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


  • MbĂ«shtetje sintaksĂ«s sĂ« re tĂ« caktimit tĂ« argumenteve tĂ« funksionit. GjatĂ« enumerimit tĂ« argumenteve gjatĂ« pĂ«rcaktimit tĂ« funksionit, tani mund tĂ« tregoni shenjĂ«n «/», qĂ« ndan argumentet, vlerat e tĂ« cilĂ«ve mund tĂ« caktohen vetĂ«m nĂ« bazĂ« tĂ« rendit tĂ« enumerimit tĂ« vlerave gjatĂ« thirrjes sĂ« funksionit, nga argumentet qĂ« lejojnĂ« caktimin nĂ« rendin e rastĂ«sishĂ«m (sintaksa «variable=value»). Nga ana praktike, kjo mundĂ«si e re lejon qĂ« nĂ« funksionet e gjuhĂ«s Python tĂ« emulohet plotĂ«sisht sjellja e funksioneve ekzistuese nĂ« gjuhĂ«n C, si dhe tĂ« shmangen lidhjet me emra tĂ« veçantĂ«, pĂ«r shembull, nĂ«se planifikohet tĂ« ndryshohet emri i parametrave nĂ« tĂ« ardhmen.

    Flagu «/» plotëson shenjën e mëparshme «*», që ndan variablat për të cilat zbatohet vetëm caktimi në formën «variable=value». Për shembull, në funksionin «def f(a, b, /, c, d, *, e, f):», variablat «a» dhe «b» mund të caktohen vetëm sipas rendit të enumerimit të vlerave,
    variablat «e» dhe «f», vetëm përmes caktimit «variable=value», dhe variablat «c» dhe «d» me cilindo nga mënyrat e treguara:

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

  • Shtuar API i ri C
    për konfigurimin e parametrave të iniciativës Python, duke lejuar kontrollin e plotë të gjithë konfiguracionit dhe ofron mjete të zgjeruara për përpunimin e gabimeve. API i propozuar e thjeshton integrimin e funksionalitetit të interpretorit Python në aplikacione të tjera në gjuhën C;
  • Ă«shtĂ« realizuar protokolli i ri Vectorcall pĂ«r qasje mĂ« tĂ« shpejtĂ« nĂ« objekte tĂ« shkruara nĂ« gjuhĂ«n C. NĂ« CPython 3.8, aksesimi nĂ« Vectorcall pĂ«r momentin Ă«shtĂ« i kufizuar nĂ« pĂ«rdorim tĂ« brendshĂ«m, dhe kalimi nĂ« API tĂ« qasshĂ«m publik Ă«shtĂ« planifikuar nĂ« CPython 3.9;
  • shtuar thirrjet Runtime Audit Hooks, duke u ofruar aplikacioneve dhe strukturave nĂ« gjuhĂ«n Python qasje nĂ« informacionin e ulĂ«t rreth ekzekutimit tĂ« skriptit pĂ«r tĂ« kryer audite tĂ« veprimeve tĂ« kryera (pĂ«r shembull, Ă«shtĂ« e mundur tĂ« ndjekĂ«sh importimin e moduleve, hapjen e skedarĂ«ve, pĂ«rdorimin e gjurmĂ«ve, thirrjet nĂ« sokete rrjetesh, ekzekutimin e kodit pĂ«rmes exec, eval dhe run_mod);
  • NĂ« modul pickle Ă«shtĂ« siguruar mbĂ«shtetje pĂ«r protokollin Pickle 5, i cili pĂ«rdoret pĂ«r serializimin dhe deserializimin e objekteve. Pickle lejon optimizimin e transmetimit tĂ« volumit tĂ« madh tĂ« tĂ« dhĂ«nave midis proceseve Python nĂ« konfigurime me shumĂ« bĂ«rthama dhe shumĂ« node, duke reduktuar numrin e operacioneve tĂ« kopjimit tĂ« memorjes dhe duke aplikuar teknika tĂ« tjera optimizimi, si pĂ«rdorimi i algoritmeve tĂ« thjeshta pĂ«r tĂ« dhĂ«na specifike. Versioni i pestĂ« i protokollit Ă«shtĂ« i njohur pĂ«r shtimin e modit tĂ« transmetimit tĂ« ndarĂ« (out-of-band), nĂ« tĂ« cilin tĂ« dhĂ«nat mund tĂ« transmetohen veçmas nga rrjedha kryesore e pickle.
  • PĂ«r default Ă«shtĂ« aktivizuar versi i katĂ«rt i protokollit Pickle, i cili krahasuar me versionin e tretĂ« tĂ« dekretuar fillimisht pĂ«rmirĂ«son performancĂ«n dhe redukton madhĂ«sinĂ« e tĂ« dhĂ«nave tĂ« transmetuara;
  • NĂ« modul typing janĂ« paraqitur disa mundĂ«si tĂ« reja:
    • Klasa TypedDict pĂ«r array asociativ, nĂ« tĂ« cilat informacioni mbi tipin e tĂ« dhĂ«nave tĂ« lidhura me çelĂ«sat pĂ«rcaktohet qartĂ« ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Lloji Literal, duke lejuar kufizimin e parametrave ose vlerĂ«s sĂ« kthyer nĂ« disa vlera tĂ« pĂ«rcaktuara paraprakisht ("Literal['connected', 'disconnected']").
    • Struktura "Final" qĂ« lejon pĂ«rcaktimin e vlerave tĂ« variablave, funksioneve, metodave dhe klasave qĂ« nuk mund tĂ« ndryshohen ose rikonfigurohen ("pi: Final[float] = 3.1415926536").
  • Ă«shtĂ« shtuar mundĂ«sia e caktimit tĂ« keshit pĂ«r skedarĂ«t e kompiluara me kodin byte, tĂ« ruajtur nĂ« njĂ« pemĂ« tĂ« veçantĂ« tĂ« FS dhe tĂ« ndarĂ« nga katalogĂ«t me kodin. Rruga pĂ«r ruajtjen e skedarĂ«ve tĂ« kodit byte pĂ«rcaktohet pĂ«rmes variablĂ«s PYTHONPYCACHEPREFIX ose opsionit "-X pycache_prefix";
  • ËshtĂ« realizuar mundĂ«sia pĂ«r tĂ« krijuar ndĂ«rtimet e gjurmimit Python, duke pĂ«rdorur ABI identike me atĂ« tĂ« shpĂ«rthimit, qĂ« lejon qĂ« nĂ« ndĂ«rtimet e gjurmimit tĂ« ngarkohen zgjerime tĂ« shkruara nĂ« gjuhĂ«n C tĂ« ndĂ«rtuara pĂ«r versionet e qĂ«ndrueshme;
  • NĂ« f-string (literalet e formatimit me prenjĂ«s ‘f’) Ă«shtĂ« mbĂ«shtetur operatori ‘=’ (pĂ«r shembull, «f'{expr=}'»), i cili lejon transformimin e shprehjes nĂ« tekst pĂ«r tĂ« thjeshtuar ndihmĂ«n pĂ«r debug. PĂ«r shembull:

    â€șâ€șâ€ș pĂ«rdoruesi = ‘eric_idle’
    â€șâ€șâ€ș anĂ«tar_qĂ«nga = date(1975, 7, 31)
    â€șâ€șâ€ș f'{pĂ«rdoruesi=} {anĂ«tar_qĂ«nga=}’
    «pĂ«rdorues=’eric_idle’ anĂ«tar_qĂ«nga=datetime.date(1975, 7, 31)»

  • Shprehja «continue» lejohet tĂ« pĂ«rdoret brenda bllokut finally;
  • Shtuar njĂ« modul tĂ« ri multiprocessing.shared_memory, duke lejuar pĂ«rdorimin e segmenteve tĂ« memories sĂ« ndarĂ« nĂ« konfigurimet multi-proces;
  • NĂ« platformĂ«n Windows, implementimi i asyncio Ă«shtĂ« transferuar pĂ«r tĂ« pĂ«rdorur klasĂ«n ProactorEventLoop;
  • Performanca e instrukcionit LOAD_GLOBAL Ă«shtĂ« rritur rreth 40% falĂ« pĂ«rdorimit tĂ« njĂ« mekanizmi tĂ« ri tĂ« ruajtjes sĂ« kodit tĂ« objektit.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster