Útgáfa af Python 3.8 forritunarmálinu

Eftir eitt og hálft ár af þróun fram helstu útgáfu forritunarmáls Python 3.8. Leiðréttingaruppfærslur fyrir Python 3.8 útibú planað gefa út innan 18 mánaða. Mikilvægar veikleikar verða lagaðir í 5 ár fram í október 2024. Leiðréttingaruppfærslur fyrir 3.8 útibúið verða gefnar út á tveggja mánaða fresti, en fyrsta leiðréttingarútgáfan af Python 3.8.1 er áætluð í desember.

Meðal þeirra sem bætt er við nýjungar:

  • Stuðningur úthlutunaraðgerðir innan flókinna tjáninga. Með nýja „:=“ stjórnandanum er hægt að framkvæma gildisúthlutunaraðgerðir inni í öðrum segðum, til dæmis til að forðast tvöföld virkniköll í skilyrtum setningum og þegar lykkjur eru skilgreindar:

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

    while (blokk := f.read(256)) != ":
    ...

  • Stuðningur ný setningafræði til að tilgreina virknirök. Þegar rifrildir eru taldar upp í fallskilgreiningu geturðu nú tilgreint "/" til að aðskilja röksemdir sem aðeins er hægt að úthluta gildum í byggt á þeirri röð sem gildin eru talin upp í fallakallinu, frá röksemdum sem hægt er að úthluta í hvaða röð sem er (breyta=gildi setningafræði) ). Á hagnýtu hliðinni gerir nýi eiginleikinn aðgerðum í Python kleift að líkja algjörlega eftir hegðun núverandi aðgerða í C, og einnig að forðast að bindast tilteknum nöfnum, til dæmis ef fyrirhugað er að breyta nafni færibreytu í framtíðinni.

    „/“ fáninn er viðbót við „*“ fánann sem áður var bætt við, og skilur að breytur sem aðeins úthlutun á formi „breyta=gildi“ á við um. Til dæmis, í fallinu "def f(a, b, /, c, d, *, e, f):" er aðeins hægt að úthluta breytunum "a" og "b" í þeirri röð sem gildin eru skráð ,
    breytur „e“ og „f“, aðeins í gegnum úthlutunina „breyta=gildi“ og breytur „c“ og „d“ á einhvern af eftirfarandi vegu:

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

  • Bætt við nýtt C API
    til að stilla Python frumstillingarfæribreytur, sem gerir fullkomna stjórn á öllu uppsetningu og veita háþróaða villumeðferðaraðstöðu. Fyrirhugað API gerir það auðvelt að fella Python túlkvirkni inn í önnur C forrit;

  • Framkvæmt ný Vectorcall samskiptareglur fyrir hraðari aðgang að hlutum sem eru skrifaðir á C tungumáli. Í CPython 3.8 er aðgangur að Vectorcall enn takmarkaður við innri notkun, flutningur yfir í flokk almennt aðgengilegra API er fyrirhugaður í CPython 3.9;
  • Bætt við kallar á Runtime Audit Hooks, sem veita forritum og ramma í Python aðgang að upplýsingum á lágu stigi um framvindu skriftunnar til að endurskoða aðgerðirnar sem gerðar eru (td getur þú fylgst með innflutningi á einingum, opnun skráa, með því að nota rekja, aðgangur að netinnstungum, keyrir kóða í gegnum exec, eval og run_mod);
  • Í einingunni súrum gúrkum veitt stuðningur við Pickle 5 samskiptareglur, notaðar til að raðgreina og afserða hluti. Pickle gerir þér kleift að hámarka flutning á miklu magni gagna á milli Python ferla í fjölkjarna og fjölhnúta stillingum með því að fækka minnisafritunaraðgerðum og beita viðbótar hagræðingaraðferðum eins og að nota gagnasértæka þjöppunaralgrím. Fimmta útgáfan af samskiptareglunum er áberandi fyrir að bæta við sendingarham utan bands, þar sem hægt er að senda gögn aðskilið frá aðal súrum gúrkum.
  • Sjálfgefið er að fjórða útgáfan af Pickle-samskiptareglunum er virkjuð, sem, samanborið við þriðju útgáfuna sem áður var boðið sjálfgefið, gerir ráð fyrir meiri afköstum og minnkun á stærð sendra gagna;
  • Í einingunni slá Nokkrir nýir eiginleikar eru kynntir:
    • Class TypedDict fyrir tengd fylki þar sem tegundarupplýsingar eru sérstaklega tilgreindar fyrir gögnin sem tengjast lyklunum ("TypedDict('Point2D', x=int, y=int, label=str)“).
    • Tegund Bókstaflegur, sem gerir þér kleift að takmarka færibreytu eða skila gildi við nokkur fyrirfram skilgreind gildi ("Literal['tengdur', 'aftengdur']").
    • Framkvæmdir"Final", sem gerir það mögulegt að skilgreina gildi breyta, falla, aðferða og flokka sem ekki er hægt að breyta eða endurúthluta ("pi: Final[float] = 3.1415926536").
  • Bætti við möguleikanum á að úthluta skyndiminni fyrir samsettar skrár með bætikóða, vistað í sérstöku FS-tré og aðskilið frá möppunum með kóðanum. Slóðin til að vista skrár með bækikóða er stillt með breytu PYTHONPYCACHEPREFIX eða valkostinn "-X pycache_prefix";
  • Framkvæmt hæfileikinn til að búa til kembiforrit af Python sem nota ABI sem er eins og útgáfuna, sem gerir þér kleift að hlaða viðbótum sem eru skrifaðar á SI tungumáli, settar saman fyrir stöðugar útgáfur, í kembiforritum;
  • f-strengir (sniðaðir bókstafir með forskeytinu 'f') veita stuðning fyrir = stjórnandann (til dæmis "f'{expr=}'"), sem gerir þér kleift að breyta tjáningu í texta til að auðvelda villuleit. Til dæmis:

    ››› notandi = 'eric_idle'
    ››› meðlimur_síðan = dagsetning(1975, 7, 31)
    ››› f'{user=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Tjáning "áfram» leyfilegt að nota inni í blokk loksins;
  • Ný eining bætt við multiprocessing.shared_memory, sem gerir kleift að nota samnýtt minnishluta í fjölvinnslustillingum;
  • Á Windows pallinum hefur asyncio útfærslan verið færð til að nota bekkinn ProactorEventLoop;
  • Frammistaða LOAD_GLOBAL leiðbeiningarinnar hefur verið aukin um u.þ.b. 40% vegna notkunar á nýjum skyndiminni fyrir hlutkóða.

Heimild: opennet.ru

Bæta við athugasemd