Sakin yaren shirye-shiryen Python 3.8

Bayan shekara daya da rabi na ci gaba gabatar babban sakin harshe na shirye-shirye Python 3.8. Sabuntawar gyara don reshen Python 3.8 an shirya saki a cikin watanni 18. Za a gyara mahimmin raunin rauni na shekaru 5 har zuwa Oktoba 2024. Za a sake sabunta sabuntawa don reshen 3.8 kowane wata biyu, tare da sakin farko na gyara Python 3.8.1 wanda aka shirya a watan Disamba.

Daga cikin kara sababbin abubuwa:

  • goyon bayan ayyuka na ayyuka a cikin hadaddun maganganu. Tare da sabon ma'aikacin ": =", yana yiwuwa a aiwatar da ayyukan ƙima a cikin wasu kalmomi, misali, don guje wa kiran aiki sau biyu a cikin maganganun sharadi da lokacin ayyana madaukai:

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

    yayin da (block:= f.read(256)) !=":
    ...

  • goyon bayan sabon syntax don ƙididdige muhawarar ayyuka. Lokacin ƙididdige muhawara yayin ma'anar aiki, yanzu zaku iya ƙayyade "/" don raba gardama waɗanda za a iya sanya ƙima kawai dangane da tsarin da aka ƙididdige ƙimar yayin kiran aikin, daga muhawarar da za a iya sanyawa. a kowane tsari (mai canzawa = darajar syntax)). A bangaren aiki, sabon fasalin yana ba da damar ayyuka a cikin Python su yi kwaikwayi gaba ɗaya halayen ayyukan da ke akwai a cikin C, da kuma guje wa ɗaure takamaiman sunaye, misali, idan ana shirin canza sunan siga a nan gaba.

    Tutar “/” ta cika tutocin “*” da aka ƙara a baya, tana ware masu canji waɗanda kawai aiki a cikin hanyar “mai canzawa = ƙima” ya dace. Alal misali, a cikin aikin "def f(a, b, /, c, d, *, e, f):" masu canji "a" da "b" za a iya sanya su kawai a cikin tsari da aka jera dabi'u. ,
    masu canji "e" da "f", kawai ta hanyar aikin "mai canzawa = darajar", da masu canji "c" da "d" a kowace hanya mai zuwa:

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

  • Kara sabon C API
    don saita sigogin farawa Python, ba da damar cikakken iko akan duka daidaitawa da kuma samar da ci-gaba na kurakurai wuraren sarrafa. API ɗin da aka tsara yana sauƙaƙe shigar da aikin fassarar Python cikin wasu aikace-aikacen C;

  • An aiwatar sabuwar ka'idar Vectorcall don saurin samun damar abubuwan da aka rubuta cikin yaren C. A cikin CPython 3.8, samun damar zuwa Vectorcall har yanzu yana iyakance ga amfani na ciki; canja wuri zuwa nau'in APIs masu isa ga jama'a an tsara shi a cikin CPython 3.9;
  • Kara kira zuwa Runtime Audit Hooks, wanda ke ba da aikace-aikace da tsarin aiki a cikin Python tare da samun damar samun ƙananan bayanai game da ci gaban rubutun don duba ayyukan da aka yi (misali, zaku iya bin diddigin shigo da kayayyaki, buɗe fayiloli, ta amfani da alama, samun dama ga soket ɗin cibiyar sadarwa, lambar aiki ta hanyar exec, eval da run_mod);
  • A cikin module gwangwani bayar da goyan bayan ka'idar Pickle 5, da aka yi amfani da ita don serializing da lalata abubuwa. Pickle yana ba ku damar haɓaka canja wurin bayanai masu yawa tsakanin hanyoyin Python a cikin maɓalli da yawa da tsarin kuɗaɗe masu yawa ta hanyar rage adadin ayyukan kwafin ƙwaƙwalwar ajiya da amfani da ƙarin dabarun ingantawa kamar ta amfani da takamaiman matsi algorithms. Siga na biyar na ƙa'idar sanannen abu ne don ƙarin yanayin watsawa daga waje, wanda za'a iya watsa bayanai daban daga babban rafi na pickle.
  • Ta hanyar tsohuwa, an kunna sigar huɗun ƙa'idar Pickle, wanda, idan aka kwatanta da nau'in na uku da aka bayar a baya ta tsohuwa, yana ba da damar yin aiki mafi girma da rage girman bayanan da aka watsa;
  • A cikin module bugawa An gabatar da sabbin abubuwa da yawa:
    • Класс TypedDict don tsararraki masu alaƙa waɗanda nau'in bayanan aka keɓance a sarari don bayanan da ke da alaƙa da maɓallan ("TypedDict ('Point2D', x=int, y=int, label=str)").
    • Rubuta Literal, wanda ke ba ka damar iyakance ma'auni ko mayar da ƙima zuwa ƴan ƙididdiga masu ƙima ("Literal['connected', 'disconnected']").
    • Gina"karshe", wanda ya sa ya yiwu a ayyana ƙimar masu canji, ayyuka, hanyoyi da azuzuwan waɗanda ba za a iya canzawa ko sake sanya su ba ("pi: Final[float] = 3.1415926536").
  • Ƙara ikon sanya cache don fayilolin da aka haɗa tare da bytecode, adana a cikin wani bishiyar FS daban kuma an rabu da kundayen adireshi tare da lambar. Hanyar adana fayiloli tare da bytecode an saita ta ta mai canzawa PYTHONPYCACHEPREFIX ko zaɓi "-X pycache_prefix";
  • An aiwatar da ikon ƙirƙirar debug ginannen Python wanda ke amfani da ABI mai kama da sakin, wanda ke ba ku damar ɗora abubuwan haɓaka da aka rubuta cikin yaren SI, waɗanda aka haɗa don ingantaccen sakewa, a cikin ginin debug;
  • f-strings (wanda aka tsara ta zahiri da 'f') suna ba da goyan baya ga mai aiki = (misali, "f'{expr=}'"), wanda ke ba ku damar canza magana zuwa rubutu don sauƙin gyara kuskure. Misali:

    ›› mai amfani = 'eric_idle'
    ›› member_tun = kwanan wata (1975, 7, 31)
    ›› f'{mai amfani=} {member_tun=}'
    "mai amfani='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Magana "ci gaba» yarda a yi amfani da shi a cikin toshe a karshe;
  • An ƙara sabon tsarin multiprocessing.shared_memory, ba da damar yin amfani da sassan ƙwaƙwalwar ajiya a cikin saitunan multiprocess;
  • A kan dandalin Windows, an motsa aiwatar da asyncio don amfani da aji ProactorEventLoop;
  • Ayyukan koyarwar LOAD_GLOBAL an ƙaru da kusan 40% saboda amfani da sabon tsarin caching code.

source: budenet.ru

Add a comment