Kuburitswa kwePython 3.8 programming mutauro

Mushure megore nehafu yebudiriro yakaunzwa chikuru programming mutauro kusunungurwa Python 3.8. Kugadzirisa zvigadziriso zvePython 3.8 bazi zvakarongwa kuburitswa mukati memwedzi gumi nemasere. Kusagadzikana kwakanyanya kuchagadziriswa kwemakore mashanu kusvika Gumiguru 18. Kugadzirisa zvigadziriso zvebazi re5 zvichaburitswa mwedzi miviri yega yega, nekutanga kuburitswa kwePython 2024 kwakarongwa muna Zvita.

Pakati pezvakawedzerwa zvitsva:

  • tsigira assignment operations mukati memazwi akaomarara. Iine mutsva ": =" mushandisi, zvinogoneka kuita kukosha kwekugovera mashandiro mukati memamwe mataurirwo, semuenzaniso, kudzivirira kaviri basa kufona muzvirevo zvemamiriro uye pakutsanangura zvishwe:

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

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

  • tsigira syntax itsva yekutsanangura mashandiro enharo. Paunenge uchinyora nharo panguva yetsanangudzo yebasa, iwe unogona ikozvino kutsanangura "/" kuparadzanisa nharo dzinogona kugoverwa kukosha zvichienderana nekurongeka uko ukoshi hunoverengerwa panguva yekufona kwebasa, kubva kune nharo dzinogona kupihwa. mune chero hurongwa (variable=value syntax) ). Padivi rinoshanda, chimiro chitsva chinobvumira mabasa muPython kunyatsotevedzera maitiro emabasa aripo muC, uye zvakare kudzivirira kusungira kune chaiwo mazita, semuenzaniso, kana iyo parameter zita rakarongwa kuchinjwa mune ramangwana.

    Mureza we "/" unopindirana nemureza wakambowedzerwa "*", unopatsanura mutsauko unoshandiswa chete nebasa re "variable=value". Semuenzaniso, mune basa re "def f (a, b, /, c, d, *, e, f):" mavara "a" uye "b" anogona kupihwa chete muhurongwa hwakanyorwa. ,
    chinja β€œe” uye β€œf”, chete kuburikidza nebasa rekuti β€œvariable=value”, uye zvinochinjika β€œc” naβ€œd” mune ipi yeiyi nzira dzinotevera:

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

  • Added itsva C API
    kugadzirisa Python yekutanga paramita, ichibvumira kutonga kwakazara pamusoro pezvose configuration uye nekupa advanced kukanganisa kubata zvivakwa. Iyo yakarongwa API inoita kuti zvive nyore kupinza Python muturikiri kushanda mune mamwe maC application;

  • Implemented new Vectorcall protocol yekukurumidza kuwana zvinhu zvakanyorwa mumutauro weC. MuCPython 3.8, kupinda kuVectorcall kuchiri kugumira mukushandiswa kwemukati; kuendesa kuchikamu cheanowanikwa pachena APIs kwakarongwa muCPython 3.9;
  • Added inofonera kuRuntime Audit Hooks, iyo inopa maapplication uye masisitimu muPython nekuwana yakaderera-chikamu ruzivo nezve kufambira mberi kwechinyorwa chekuongorora zviito zvakaitwa (semuenzaniso, unogona kuteedzera kupinza kwemamodule, kuvhura mafaera, uchishandisa trace, kuwana zvigadziko zvetiweki, kumhanya kodhi kuburikidza ne exec, eval uye run_mod);
  • Mune module magaka akapa tsigiro yePickle 5 protocol, inoshandiswa kugadzira serializing uye kubvisa zvinhu. Pickle inobvumidza iwe kukwenenzvera kufambiswa kwehuwandu hwe data pakati pePython maitiro mune akawanda-musimboti uye akawanda-node zvigadziriso nekudzikisa huwandu hwendangariro kopi mashandiro uye kushandisa ekuwedzera optimization maitiro sekushandisa data-chaiyo compression algorithms. Yechishanu vhezheni yeprotocol inocherechedzwa nekuwedzera kwekunze-kwe-band transmission mode, iyo data inogona kutumirwa zvakasiyana kubva kune main pickle stream.
  • Nekutadza, iyo yechina vhezheni yePickle protocol inoshandiswa, iyo, ichienzaniswa neyechitatu shanduro yakambopihwa nekusarudzika, inobvumira kuita kwepamusoro uye kuderedzwa kwehukuru hwe data yakatumirwa;
  • Mune module kunyora Zvizhinji zvitsva zvinounzwa:
    • Chikoro TypedDict yeassociative arrays umo ruzivo rwemhando inotsanangurwa zvakajeka kune data rine chekuita nemakiyi ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Tora Literal, iyo inokutendera iwe kudzikamisa parameter kana kudzorera kukosha kune mashoma akafanotsanangurwa kukosha ("Literal['yakabatana', 'yakabviswa']").
    • Kuvaka "Final", izvo zvinoita kuti zvikwanise kutsanangura kukosha kwezvakasiyana, mabasa, nzira uye makirasi asingagone kuchinjwa kana kupihwazve ("pi: Final[float] = 3.1415926536").
  • Yakawedzera kugona kugovera cache yemafaira akaunganidzwa ane bytecode, akachengetwa mune yakaparadzana FS muti uye akaparadzaniswa kubva kune madhairekitori ane kodhi. Iyo nzira yekuchengetedza mafaera nebytecode yakaiswa kuburikidza neinosiyana PYTHONPYCACHEPREFIX kana sarudzo "-X pycache_prefix";
  • Implemented kugona kugadzira debug inovaka yePython inoshandisa ABI yakafanana nekuburitswa, iyo inobvumidza iwe kurodha mawedzero akanyorwa mumutauro weSI, akagadzirirwa kuburitswa kwakagadzikana, mukugadzirisa kwekuvaka;
  • f-strings (mafomated literals prefixed ne'f') inopa rutsigiro kune = mushandisi (semuenzaniso, "f'{expr=}'"), izvo zvinokutendera kuti uchinje chirevo kuti chiite mavara kuti zvive nyore kugadzirisa. Semuyenzaniso:

    β€Ίβ€Ίβ€Ί mushandisi = 'eric_idle'
    β€Ίβ€Ίβ€Ί nhengo_kubva = zuva(1975, 7, 31)
    β€Ίβ€Ίβ€Ί f'{user=} {nhengo_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • TsanangurorambaiΒ» inobvumirwa kushandiswa mukati me block pakupedzisira;
  • New module yakawedzerwa multiprocessing.shared_memory, kubvumira kushandiswa kwezvikamu zvendangariro zvakagovaniswa mumiganho yakawanda;
  • PaWindows platform, kushandiswa kweasyncio kwakafambiswa kushandisa kirasi ProactorEventLoop;
  • Kuita kweLOAD_GLOBAL rairo kwawedzerwa nezvikamu makumi mana kubva muzana nekuda kwekushandiswa kwechinhu chitsva che caching mechanism.

Source: opennet.ru

Voeg