Siideynta luuqada barnaamijka Python 3.10

Hal sano oo horumarineed ka dib, siideynta muhiimka ah ee luuqadda barnaamijka Python 3.10 ayaa la soo bandhigay. Laanta cusub ayaa la taageeri doonaa hal sano iyo badh, ka dib saddex sano iyo badh kale, waxaa loo samayn doonaa hagaajin si meesha looga saaro dayacanka.

Isla mar ahaantaana, tijaabada alfa ee laanta Python 3.11 ayaa bilaabatay (iyadoo la raacayo jadwalka horumarinta cusub, shaqada laanta cusub waxay bilaabmaysaa shan bilood ka hor inta aan la sii dayn laantii hore oo waxay gaadhay heerka tijaabada alfa wakhtiga sii deynta soo socota ). Laanta Python 3.11 waxay ku jiri doontaa alfa siideynta todobo bilood, inta lagu guda jiro sifooyin cusub ayaa lagu dari doonaa oo la hagaajin doonaa cayayaanka. Taas ka dib, noocyada beta ayaa la tijaabin doonaa muddo saddex bilood ah, inta lagu guda jiro ku darista sifooyin cusub waa la mamnuuci doonaa waxaana dhammaan dareenka la siin doonaa hagaajinta cayayaanka. Labadii bilood ee la soo dhaafay ka hor inta aan la sii dayn, laantu waxay ahaan doontaa heerka musharraxa sii deynta, kaas oo xasilinta kama dambaysta ah la samayn doono.

Kudarida cusub ee Python 3.10 waxaa ka mid ah:

  • Hawl-wadeenada "kuwa" iyo "kiis" ee isbarbardhiga qaabka, kuwaas oo wanaajinaya akhrinta koodka, fududeeya isbarbardhigga walxaha Python, oo kordhiya isku halaynta koodhka iyada oo loo marayo hubinta nooca taagan ee horumarsan. Hirgelintu waxa ay la mid tahay hawl wadeenka "kulanka" ee lagu bixiyo Scala, Rust, iyo F#, kaas oo isbarbar dhigaya natiijada tibaaxaha la cayimay iyo liiska qaababka ku taxan baloogyada ku salaysan hawlwadeenka "kiiska".

    def http_error(status): heerka ciyaarta: kiiska 400: soo celi "Codsiga xun" kiis 401|403|404: soo celi "Lama ogola" kiiska 418: soo celi "I'm teapot" case _: soo celi "Wax kale"

    Waxaad kala soo bixi kartaa walxaha, tuples, liisaska, iyo taxanaha aan sabab lahayn si aad isugu xidho doorsoomayaasha ku salaysan qiyamka jira. Waa la oggol yahay in la qeexo qaab-dhismeedka buulka leh, adeegso shuruudo dheeraad ah β€œhaddii” qaab-dhismeedka, adeegso waji-xidhka (β€œ[x, y, *nasasho]”), khariidadaha furaha/qiimaha (tusaale, {β€œbandwidth”: b, β€œlatency ": l} si loo soo saaro "bandwidth" iyo "daahitaanka" qiyamka qaamuuska), ka soo saar qaab-hoosaadyo (":=" hawlwadeen), isticmaal joogto ah oo magac leh qaab-dhismeedka. Fasalada dhexdeeda, waxaa suurtagal ah in hab-dhaqanka is-waafajinta lagu habeeyo iyadoo la adeegsanayo habka "__ match__()".

    laga soo bilaabo fasalada xogta soo dejinta dataclass @class class Point: x: int y: int def halka (dhibic): barta u dhigma: dhibic kiis (0, 0): daabac ("Asalka") kiis Point (0, y): daabac (f" Y={y}) dhibic: Point Point (x, y) haddii x == y: daabac (f"Y=X at {x}") kiis Bar (x, y): daabac (f"Aan ku jirin safafka") guduudan, GREEN, BULUUG = 0, 0, 1 midab isku mid ah: kiis CASAAN: daabac ("Waxaan arkaa casaan!") Kiiska CAGAAR: daabac ("cawsku waa cagaar") kiis buluug: daabac

  • Hadda waxa suurtogal ah in la isticmaalo qawl-qaadaha qoraalka si loo kala qaybiyo qeexida ururinta maamulayaasha macnaha guud ee sadar badan. Waxa kale oo loo ogol yahay in laga tago comma ka dib maareeyaha macnaha guud ee kooxda: oo leh ( CtxManager1 () tusaale ahaan1, CtxManager2 () tusaale2, CtxManager3() tusaale3,): ...
  • Soo gudbinta hagaajinta ee goobta koodka ee khaladaadka la xidhiidha biraha aan xidhnayn iyo xigashooyinka xargaha xargaha. Tusaale ahaan, marka uu jiro xadhig aan xidhnayn, halkii laga sheegi lahaa khaladka syntax ee dhismaha soo socda, tilmaamuhu hadda wuxuu iftiiminayaa xadhigga furitaanka oo wuxuu muujinayaa inaanu jirin xannibaad xidhitaan ah. Faylka "example.py", laynka 1 la filayo = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError:'{' marna lama xidhin

    Waxaa lagu daray farriimaha qaladka syntax ee khaaska ah: maqan ":" calaamad ka hor xannibaadda iyo qaamuusyada, aan la kala saarin tuple leh jaantusyada, ka maqan liistada liiska, qeexida "isku day" xannibaad la'aan "marka laga reebo" iyo "ugu dambeyntii", isticmaalaya "=" " halkii "= =" isbarbardhigga, qeexida * -tibaaxaha f-strings. Intaa waxaa dheer, waxay hubisaa in dhammaan tibaaxaha dhibaatada leh la iftiimiyay, maaha bilawga, iyo macluumaad aad u cad oo ku saabsan macnaha khaladaadka ee la xidhiidha galitaanka khaldan. >>> def foo(): ... haddii lel: ... x = 2 File " ", line 3 x = 2 ^ Indentation Error: la filayo block goglan ka dib bayaan 'if' ee safka 2

    Qaladaadka ay keento qoraalada magacyada sifooyinka iyo magacyada doorsooma ee shaqada, talo magac sax ah wata ayaa soo baxaysa. >>> ururinta.namedtoplo Traceback (wiciddii ugu dambaysay): Faylka Β« ", line 1, in Khaladaadka sifo: moduleka 'ururinta' ma laha sifo 'namedtoplo'. Ma waxaad ula jeedaa: nametuple?

  • Qalabka wax-ka-hortagga iyo profile-yaasha, dhacdooyinka raadraaca waxaa la siiyaa lambarada khadka saxda ah ee koodka la fuliyay.
  • Waxaa lagu daray sys.flags.warn_default_encoding si ay u muujiso digniin ku saabsan khaladaadka iman kara ee la xidhiidha TextIOWrapper iyo fur() habaynta UTF-8 faylalka habaysan iyada oo aan si cad loo cayimin ikhtiyaarka 'encoding=Β»utf-8β€³ (ASCII codaynta waxa loo istcmaalay si caadi ah). Siideynta cusub waxay sidoo kale bixisaa awooda lagu qeexo 'encoding="locale" qiimaha si loo dejiyo codaynta iyadoo lagu saleynayo meesha hadda jirta.
  • Hawl-wadeen cusub ayaa lagu daray qaybta wax-ku-qorista, kaas oo siinaya qalab lagu qeexo nooca tafsiirrada, taasoo u oggolaanaysa adeegsiga ereyga "X | Y" si loo doorto mid ka mid ah noocyada (nooca X ama nooca Y). def square (lambar: int | sabeyn) -> int | sabayn: nambarka soo celinta ** 2 waxay u dhigantaa dhismihii hore loo taageeray: def square (lambar: Union[int, float]) -> Ururka[int, sabbeyn]: lambarka soo laabashada ** 2
  • Hawlwadeenka Concatenate iyo doorsoomiyaha ParamSpec ayaa lagu daray cutubka wax lagu qorayo, kaas oo kuu ogolaanaya inaad u gudbiso macluumaad dheeraad ah oo ku saabsan hubinta nooca taagan markaad isticmaalayso Callable. Qaybta wax-ku-qorista waxay sidoo kale ku daraysaa qiyamka gaarka ah eeTypeGuard si ay u sharaxdo nooca ilaalinta hawlaha iyo TypeAlias ​​​​si si cad loo qeexo nooca loo yaqaan 'alias'. StrCache: TypeAlias ​​= 'Cache[str]' # magac loo yaqaan
  • Shaqada zip() waxay fulisaa calan "adag" ikhtiyaari ah, kaas oo, marka la cayimo, hubiya in dooda la soo celinayo ay isku dherer yihiin. >>> liiska (zip (('a', 'b', 'c'), (1, 2, 3), adag = Run)) [('a', 1), ('b', 2) , ('c', 3)] >>> liiska(zip(kala duwan) : … ValueError: zip() doodda 3 way ka dheertahay dooda 2
  • Shaqooyin cusub oo ku dhex jira aiter() iyo xiga() ayaa la soo jeediyay iyada oo la adeegsanayo analoogyada isku midka ah ee hawlaha iter() iyo xiga().
  • Shaqada str(), bytes() iyo bytearray() dhisayaasha marka lagu shaqeynayo walxaha yaryar waxaa la dardargeliyay 30-40%.
  • La dhimay tirada hawlgallada soo dejinta ee moduleka runpy. Amarka "python3 -m module_name" hadda wuxuu ku shaqeeyaa celcelis ahaan 1.4 jeer dhakhso ah sababtoo ah hoos u dhigista cutubyada la soo dejiyo min 69 ilaa 51.
  • Tilmaanta LOAD_ATTR waxay isticmaashaa habka kaydinta opcode-ka gaarka ah, kaas oo suurtageliyay in la dedejiyo shaqada sifada caadiga ah ilaa 36%, iyo boosaska ilaa 44%.
  • Marka la dhisayo Python oo leh ikhtiyaarka "-enable-optimizations", qaabka "-fno-semantic-interposition" hadda waa la dajiyay, taas oo u oggolaanaysa in la dedejiyo turjubaanka ilaa 30% marka la barbardhigo dhismaha "- awood-wadaaga ” doorasho.
  • Qaybaha hashlib iyo ssl ayaa ku daray taageerada OpenSSL 3.0.0 waxayna joojiyeen taageeradii noocyada OpenSSL ee ka weyn 1.1.1.
  • Baadhitaankii hore waa la saaray, kaas oo lagu beddelay laantii hore ee PEG (Parsing Expression Grammar). Qaabka qaabeeyaha waa laga saaray Halbeegga loop-ka ayaa laga saaray asyncio API. Hababka hore loo joojiyay waa laga saaray. Hawlaha Py_UNICODE_str* ee maamula xadhkaha Py_UNICODE* waa la saaray
  • Qaybta distutils waa la joojiyay waxaana loo qorsheeyay in meesha laga saaro Python 3.12. Halkii distutils, waxaa lagu talinayaa in la isticmaalo settools, baakadaha, madal, shutil, subprocess iyo sysconfig modules. Qaab dhismeedka wstr ee PyUnicodeObject waa la jaray waxaana loo qorsheeyay in meesha laga saaro.

Source: opennet.ru

Add a comment