Ukukhishwa kolimi lokuhlela lwePython 3.8

Ngemva konyaka nengxenye yentuthuko kwethulwe ukukhululwa kolimi lohlelo olukhulu Python 3.8. Izibuyekezo zokulungisa zegatsha lePython 3.8 kuhlelwe ukukhululwa phakathi nezinyanga ezingu-18. Ukuba sengozini okubalulekile kuzolungiswa iminyaka emi-5 kuze kube ngu-Okthoba 2024. Izibuyekezo zokulungisa zegatsha le-3.8 zizokhishwa njalo ngemva kwezinyanga ezimbili, nokukhululwa kokuqala kokulungisa kwePython 3.8.1 okuhlelelwe uDisemba.

Phakathi kwengeziwe emisha:

  • ukweseka imisebenzi yezabelo ngaphakathi kwezinkulumo eziyinkimbinkimbi. Ngo-opharetha omusha we-“:=”, kuyenzeka wenze imisebenzi yokunikeza inani ngaphakathi kwezinye izinkulumo, isibonelo, ukugwema izingcingo ezisebenza kabili ezitatimendeni ezinemibandela nalapho uchaza amaluphu:

    uma (n := len(a)) > 10:
    ...

    ngenkathi (block := f.read(256)) != ":
    ...

  • ukweseka i-syntax entsha yokucacisa ama-agumenti omsebenzi. Lapho ubala ama-agumenti phakathi nencazelo yomsebenzi, ungakwazi manje ukucacisa u-"/" ukuze uhlukanise ama-agumenti angabiwa kuphela amanani ngokusekelwe ohlelweni lapho amanani abalwa khona phakathi nocingo lomsebenzi, kusukela kuma-agumenti angabelwa. nganoma iluphi uhlelo (i-variable=value syntax) ). Ngasohlangothini olusebenzayo, isici esisha sivumela imisebenzi e-Python ukuthi ilingise ngokuphelele ukuziphatha kwemisebenzi ekhona ku-C, futhi futhi igweme ukubophezela kumagama athile, isibonelo, uma igama lepharamitha lihlelelwe ukushintshwa esikhathini esizayo.

    Ifulegi elithi “/” lihambisana nefulegi elithi “*” engezwe ngaphambilini, okuhlukanisayo okuhlukanisayo okusebenza kuphela umsebenzi ozokwenziwa osesimweni esithi “variable=value”. Ngokwesibonelo, kumsebenzi othi "def f(a, b, /, c, d, *, e, f):" okuguquguqukayo "a" kanye "b" kunganikezwa kuphela ngokulandelana amanani asohlwini. ,
    okuguquguqukayo “e” kanye “no-“f”, kuphela ngesabelo esithi “variable=value”, neziguquguqukayo “c” kanye “d” nganoma iyiphi kulezi zindlela ezilandelayo:

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

  • Kwengezwe entsha C API
    ukuze ulungiselele amapharamitha wokuqalisa wePython, okuvumela ukulawula okuphelele kukho konke ukumisa kanye nokuhlinzeka ngezinsiza ezithuthukile zokusingatha amaphutha. I-API ehlongozwayo yenza kube lula ukushumeka ukusebenza komtoliki we-Python kwezinye izinhlelo zokusebenza ze-C;

  • Kwenziwa Iphrothokholi entsha ye-Vectorcall yokufinyelela ngokushesha ezintweni ezibhalwe ngolimi C. Ku-CPython 3.8, ukufinyelela ku-Vectorcall kusakhawulelwe ekusetshenzisweni kwangaphakathi, ukudlulisela esigabeni sama-API afinyeleleka esidlangalaleni kuhlelwa ku-CPython 3.9;
  • Kwengeziwe izingcingo ku-Runtime Audit Hooks, ehlinzeka ngezinhlelo zokusebenza nezinhlaka ku-Python ngokufinyelela olwazini olusezingeni eliphansi mayelana nenqubekelaphambili yeskripthi ukuhlola izenzo ezenziwe (isibonelo, ungakwazi ukulandelela ukungenisa kwamamojula, ukuvula amafayela, usebenzisa umkhondo, ukufinyelela amasokhethi enethiwekhi, ukusebenzisa ikhodi ngokusebenzisa exec, eval kanye run_mod);
  • Kumojula ukhukhamba enikeziwe ukusekelwa kwephrothokholi ye-Pickle 5, esetshenziselwa ukwenza ama-serializing kanye nokususa izinto. I-Pickle ikuvumela ukuthi uthuthukise ukudluliswa kwenani elikhulu ledatha phakathi kwezinqubo ze-Python ekucushweni kwe-multi-core kanye ne-multi-node ngokunciphisa inani lemisebenzi yokukopisha inkumbulo nokusebenzisa amasu okuthuthukisa engeziwe njengokusebenzisa ama-algorithms wokucindezela idatha ethile. Inguqulo yesihlanu yephrothokholi iyaphawuleka ngokungezwa kwemodi yokudlulisela ngaphandle kwebhendi, lapho idatha ingadluliselwa ngokuhlukana nomfudlana we-pickle oyinhloko.
  • Ngokuzenzakalelayo, inguqulo yesine yephrothokholi ye-Pickle icushiwe, okuthi, uma kuqhathaniswa nenguqulo yesithathu eyanikezwa ngaphambilini ngokuzenzakalelayo, ivumela ukusebenza okuphezulu nokunciphisa usayizi wedatha edlulisiwe;
  • Kumojula ukuthayipha Ziningana izici ezintsha ezethulwayo:
    • Класс I-TypeDict kumalungu afanayo ahlangene lapho ulwazi lohlobo lucaciswa ngokusobala kudatha ehlobene nokhiye (“TypedDict('Point2D', x=int, y=int, ilebula=str)").
    • Thayipha Ongokoqobo, okukuvumela ukuthi ukhawulele ipharamitha noma ubuyisele inani kumanani achazwe ngaphambilini ambalwa (“Literal['ixhunyiwe', 'inqanyuliwe']").
    • Idizayini "Final", okwenza kube nokwenzeka ukuchaza amanani okuguquguqukayo, imisebenzi, izindlela namakilasi angenakushintshwa noma anikezwe kabusha ("pi: Final[float] = 3.1415926536").
  • Kwengezwe ikhono lokunikeza inqolobane yamafayela ahlanganisiwe nge-bytecode, alondolozwe esihlahleni se-FS esihlukile futhi ahlukaniswe nezinkomba ezinekhodi. Indlela yokulondoloza amafayela nge-bytecode isethwe ngokuguquguquka I-PYTHONPYCACHEPREFIX noma inketho "-X pycache_prefix";
  • Kwenziwa ikhono lokudala ukwakhiwa kwe-debug ye-Python esebenzisa i-ABI efana nokukhululwa, ekuvumela ukuthi ulayishe izandiso ezibhalwe ngolimi lwe-SI, ezihlanganiswe ukukhishwa okuzinzile, ekwakhiweni kokususa iphutha;
  • ama-f-strings (amagama afomathiweyo anesiqalo esithi 'f') ahlinzeka ngosekelo ku-opharetha = (ngokwesibonelo, "f'{expr=}'"), okukuvumela ukuthi uguqule isisho sibe umbhalo ukuze kulungiswe iphutha kalula. Ngokwesibonelo:

    ››› umsebenzisi = 'eric_idle'
    ››› ilungu_kusukela = usuku(1975, 7, 31)
    ››› f'{user=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Inkulumo "qhubeka»kuvunyelwe ukusetshenziswa ngaphakathi kwebhulokhi ekugcineni;
  • Kwengezwe imojuli entsha multiprocessing.shared_memory, okuvumela ukusetshenziswa kwezingxenye zememori eyabiwe ekucushweni kwezinqubo eziningi;
  • Ku-Windows platform, ukuqaliswa kwe-asyncio kususiwe ukuze kusetshenziswe ikilasi I-ProactorEventLoop;
  • Ukusebenza komyalelo we-LOAD_GLOBAL kukhuphuke cishe ngo-40% ngenxa yokusetshenziswa kwendlela entsha yokugcina inqolobane yekhodi yento.

Source: opennet.ru

Engeza amazwana