Itusilẹ ti ede siseto Python 3.8

Lẹhin ọdun kan ati idaji ti idagbasoke gbekalẹ idasile ede siseto pataki Python 3.8. Awọn imudojuiwọn atunṣe fun ẹka Python 3.8 ngbero tu laarin 18 osu. Awọn ailagbara to ṣe pataki yoo wa titi fun ọdun 5 titi di Oṣu Kẹwa Ọdun 2024. Awọn imudojuiwọn atunṣe fun ẹka 3.8 yoo tu silẹ ni gbogbo oṣu meji, pẹlu itusilẹ atunṣe akọkọ ti Python 3.8.1 ti a ṣeto fun Oṣu kejila.

Lara awọn kun awọn imotuntun:

  • .Оддержка iṣẹ iyansilẹ laarin eka expressions. Pẹlu oniṣẹ tuntun “: =”, o ṣee ṣe lati ṣe awọn iṣẹ iyansilẹ iye laarin awọn ikosile miiran, fun apẹẹrẹ, lati yago fun awọn ipe iṣẹ ilọpo meji ni awọn alaye ipo ati nigba asọye awọn iyipo:

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

    nigba (ìdènà:= f.read(256)) !=":
    ...

  • .Оддержка titun sintasi fun a pato awọn ariyanjiyan iṣẹ. Nigbati o ba n ṣe iṣiro awọn ariyanjiyan lakoko asọye iṣẹ, o le ni bayi pato “/” kan lati ya awọn ariyanjiyan ti o le ṣe iyasọtọ awọn iye nikan ti o da lori aṣẹ eyiti a ṣe atokọ awọn iye lakoko ipe iṣẹ, lati awọn ariyanjiyan ti o le sọtọ. ni eyikeyi ibere (ayipada = iye sintasi)). Ni ẹgbẹ ti o wulo, ẹya tuntun ngbanilaaye awọn iṣẹ ni Python lati farawe patapata ihuwasi ti awọn iṣẹ ti o wa tẹlẹ ni C, ati lati yago fun mimu si awọn orukọ kan pato, fun apẹẹrẹ, ti orukọ paramita ba gbero lati yipada ni ọjọ iwaju.

    Àsíá “/” náà kún àsíá “*” tí a ti ṣàfikún tẹ́lẹ̀, ní ìyàtọ̀ àwọn oníyipada fún èyí tí ojúṣe kan ṣoṣo ní fọ́ọ̀mù “ayípadà=iye” wúlò. Fun apẹẹrẹ, ninu iṣẹ "def f (a, b, /, c, d, *, e, f):" awọn oniyipada "a" ati "b" le ṣe sọtọ ni aṣẹ ti a ṣe akojọ awọn iye ,
    awọn oniyipada “e” ati “f”, nikan nipasẹ iṣẹ iyansilẹ “ayipada = iye”, ati awọn oniyipada “c” ati “d” ni eyikeyi awọn ọna wọnyi:

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

  • Fi kun titun C API
    lati tunto Python initialization sile, gbigba pipe Iṣakoso lori gbogbo iṣeto ni ati pese awọn ohun elo mimu aṣiṣe to ti ni ilọsiwaju. API ti a dabaa jẹ ki o rọrun lati fi sii iṣẹ onitumọ Python sinu awọn ohun elo C miiran;

  • Ti ṣe imuse Ilana Vectorcall tuntun fun iraye si iyara si awọn nkan ti a kọ ni ede C. Ni CPython 3.8, iraye si Vectorcall tun wa ni opin si lilo inu; gbigbe si ẹya ti awọn API wiwọle si gbangba ni a gbero ni CPython 3.9;
  • Fi kun Awọn ipe si awọn Hooks Audit Runtime, eyiti o pese awọn ohun elo ati awọn ilana ni Python pẹlu iraye si alaye ipele-kekere nipa ilọsiwaju ti iwe afọwọkọ lati ṣayẹwo awọn iṣe ti a ṣe (fun apẹẹrẹ, o le tọpa gbigbe wọle ti awọn modulu, ṣiṣi awọn faili, lilo itọpa kan, wọle si awọn iho nẹtiwọki, koodu ṣiṣiṣẹ nipasẹ exec, eval ati run_mod);
  • Ninu module iyan pese support fun Pickle 5 bèèrè, lo fun serializing ati deserializing ohun. Pickle gba ọ laaye lati mu iwọn gbigbe ti data nla pọ si laarin awọn ilana Python ni ọpọlọpọ-mojuto ati awọn atunto ipade-opopona nipasẹ idinku nọmba awọn iṣẹ idaako iranti ati lilo awọn imudara imudara afikun gẹgẹbi lilo awọn algoridimu funmorawon data-kan pato. Ẹya karun ti ilana naa jẹ ohun akiyesi fun afikun ti ipo gbigbe jade-ti-band, ninu eyiti data le tan kaakiri lọtọ lati ṣiṣan pickle akọkọ.
  • Nipa aiyipada, ẹya kẹrin ti Ilana Pickle ti mu ṣiṣẹ, eyiti, ni akawe si ẹya kẹta ti a funni tẹlẹ nipasẹ aiyipada, ngbanilaaye fun iṣẹ ṣiṣe ti o ga julọ ati idinku ninu iwọn data ti a firanṣẹ;
  • Ninu module titẹ Ọpọlọpọ awọn ẹya tuntun ni a ṣe afihan:
    • Класс TypedDict fun awọn akojọpọ akojọpọ ninu eyiti iru alaye ti wa ni pato ni pato fun data ti o ni nkan ṣe pẹlu awọn bọtini ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Iru Gegebi, eyiti o fun ọ laaye lati ṣe idinwo paramita kan tabi da iye pada si awọn iye ti a ti pinnu tẹlẹ (“Literal['ti sopọ', 'ti ge asopọ']”).
    • Ikole "ik", eyiti o jẹ ki o ṣee ṣe lati ṣalaye awọn iye ti awọn oniyipada, awọn iṣẹ, awọn ọna ati awọn kilasi ti a ko le yipada tabi tun sọtọ ("pi: Ik[float] = 3.1415926536").
  • Ṣe afikun agbara lati fi kaṣe kan fun awọn faili ti a ṣajọpọ pẹlu bytecode, ti o fipamọ sinu igi FS lọtọ ati yapa si awọn ilana pẹlu koodu naa. Ona fun fifipamọ awọn faili pẹlu bytecode ti ṣeto nipasẹ oniyipada kan PYTHONPYCACHEPREFIX tabi aṣayan "-X pycache_prefix";
  • Ti ṣe imuse agbara lati ṣẹda awọn kikọ yokokoro ti Python ti o lo aami ABI kan si itusilẹ, eyiti o fun ọ laaye lati fifuye awọn amugbooro ti a kọ ni ede SI, ti a ṣajọpọ fun awọn idasilẹ iduroṣinṣin, ni awọn agbero atunkọ;
  • f-strings (awọn itumọ ọrọ gangan ti a ti ṣaju pẹlu 'f') n pese atilẹyin fun = oniṣẹ ẹrọ (fun apẹẹrẹ, "f'{expr=}'"), eyiti o fun ọ laaye lati yi ikosile pada si ọrọ fun ṣiṣe atunṣe rọrun. Fun apere:

    ›› olumulo = 'eric_idle'
    ›› member_niwon = ọjọ (1975, 7, 31)
    ›› f'{olumulo=} {emba_niwon=}'
    "olumulo='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Ifihan "tesiwaju» gba laaye lati lo inu bulọọki kan nipari;
  • New module kun multiprocessing.shared_memory, gbigba awọn lilo ti pín iranti apa ni multiprocess atunto;
  • Lori Syeed Windows, imuse asyncio ti gbe lati lo kilasi naa ProactorEventLoop;
  • Iṣe ti itọnisọna LOAD_GLOBAL ti pọ nipasẹ isunmọ 40% nitori lilo ẹrọ fifipamọ koodu ohun tuntun.

orisun: opennet.ru

Fi ọrọìwòye kun