Sgaoileadh cànan prògramadh Python 3.10

Às deidh bliadhna de leasachadh, tha an sgaoileadh mòr de chànan prògramadh Python 3.10 air a thaisbeanadh. Thèid taic a thoirt don mheur ùr airson bliadhna gu leth, agus às deidh sin airson trì bliadhna gu leth eile, thèid fuasglaidhean a chruthachadh gus cuir às do so-leòntachd.

Aig an aon àm, thòisich deuchainn alpha air meur Python 3.11 (a rèir a ’chlàr leasachaidh ùr, bidh obair air meur ùr a’ tòiseachadh còig mìosan mus deach a ’mheur roimhe a leigeil ma sgaoil agus a’ ruighinn ìre deuchainn alpha ro àm an ath fhoillseachadh. ). Bidh meur Python 3.11 ann an alpha release airson seachd mìosan, nuair a thèid feartan ùra a chur ris agus bugaichean a shuidheachadh. Às deidh seo, thèid dreachan beta a dhearbhadh airson trì mìosan, nuair a thèid casg a chuir air feartan ùra a chuir ris agus thèid aire a thoirt do bhith a’ càradh bhiteagan. Airson an dà mhìos mu dheireadh mus tèid an leigeil ma sgaoil, bidh am meur aig ìre an tagraiche fuasglaidh, far an tèid an seasmhachd mu dheireadh a dhèanamh.

Am measg leasachaidhean ùra ri Python 3.10 tha:

  • Oibrichean “maids” agus “cùis” an sàs airson maidseadh phàtranan, a leasaicheas comas leughaidh còd, a nì sìmpleachadh air maidseadh nithean Python neo-riaghailteach, agus a mheudaicheas earbsachd còd tro sgrùdadh seòrsa statach adhartach. Tha am buileachadh gu math coltach ris a’ ghnìomhaiche “maids” a chaidh a thoirt seachad ann an Scala, Rust, agus F #, a tha a’ dèanamh coimeas eadar toradh abairt ainmichte le liosta de phàtranan air an liostadh ann am blocaichean stèidhichte air a’ ghnìomhaiche “cùis”.

    def http_error(status): inbhe maids: cùis 400: till “Droch iarrtas” cùis 401 | 403 | 404: till “Chan eil e ceadaichte” cùis 418: till “Is e teapot a th’ annam” cùis _: till “Rudeigin eile”

    Faodaidh tu nithean, tuples, liostaichean, agus sreathan neo-riaghailteach a dhì-phapadh gus caochladairean a cheangal stèidhichte air luachan a tha ann mar-thà. Tha e ceadaichte teamplaidean neadachaidh a mhìneachadh, suidheachaidhean “ma tha” a bharrachd a chleachdadh san teamplaid, masgaichean a chleachdadh (“[x, y, * fois]”), mapaichean iuchrach / luach (mar eisimpleir, {“bandwidth”: b, “latency ” : l} gus luachan “bandwidth” agus “latency” a thoirt a-mach à faclair), thoir a-mach fo-theamplaidean (" : = " gnìomhaiche), cleachd comharran ainmichte ann an teamplaid. Ann an clasaichean, tha e comasach giùlan maidsidh a ghnàthachadh a’ cleachdadh an dòigh “__match__()”.

    bho dataclasses cuir a-steach dataclass @ clas clas dàta Puing: x: int y: int def whereis (puing): puing maids: cùis Puing (0, 0): clò-bhualadh ("Origin") cùis Puing (0, y): clò-bhualadh (f" Y = {y}") cùis Puing (x, 0): clò-bhualadh (f "X = {x}") cùis Puing (): clò ("An àiteigin eile") cùis _: clò-bhualadh ("Chan e puing") maids puing: cùis Puing (x, y) ma tha x == y: clò-bhualadh (f "Y = X aig {x}") cùis Puing (x, y): clò-bhualadh (f "Chan ann air an trastain") RED, GREEN, BLUE = 0, 1, 2 a’ maidseadh dath: cùis RED: clò-bhualadh (“Tha mi a’ faicinn dearg!”) cùis GREEN: clò-bhualadh (“feur uaine”) cùis BLUE: print(“Tha mi a’ faireachdainn na blues :(“)

  • Tha e comasach a-nis brathan a chleachdadh anns an aithris gus am mìneachadh air cruinneachadh de mhanaidsearan co-theacsa a roinn thairis air grunn loidhnichean. Tha e ceadaichte cuideachd cromag fhàgail às deidh a’ mhanaidsear co-theacsa mu dheireadh sa bhuidheann: le (CtxManager1() mar eisimpleir1, CtxManager2() mar eisimpleir2, CtxManager3() mar eisimpleir3, ): ...
  • Aithris nas fheàrr air suidheachadh còd mhearachdan co-cheangailte ri braces neo-dhùinte agus luachan ann an litrichean sreang. Mar eisimpleir, nuair a tha brace neo-dhùinte ann, an àite a bhith ag aithris mearachd co-chòrdaidh anns an togalach a leanas, tha am puing a-nis a’ soilleireachadh am brace fosglaidh agus a’ nochdadh nach eil bloc dùnaidh ann. Faidhle "example.py", loidhne 1 ris an robh dùil = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' cha deach a dhùnadh a-riamh

    Chaidh teachdaireachdan mearachd co-chàradh sònraichte a bharrachd a chur ris: a dhìth " : " samhla ro bhloca agus ann am faclairean, gun a bhith a’ sgaradh tuple le bracaidean, cromag a dhìth ann an liostaichean, a’ sònrachadh bloc “feuch” gun “ach a-mhàin” agus “mu dheireadh”, a’ cleachdadh “= " an àite " = = " ann an coimeasan, a 'sònrachadh *-expressions ann am f-strings. A bharrachd air an sin, bidh e a’ dèanamh cinnteach gu bheil an abairt trioblaideach gu lèir air a shoilleireachadh, chan e dìreach an toiseach, agus fiosrachadh nas soilleire mu cho-theacsa mhearachdan co-cheangailte ri indentation ceàrr. >>> def foo(): ... if lel: ... x = 2 File " ", loidhne 3 x = 2 ^ Mearachd indentation: bha dùil ri bloca air a chuir a-steach às dèidh aithris 'if' ann an loidhne 2

    Ann am mearachdan air an adhbhrachadh le typos ann an ainmean buadhan agus ainmean caochlaideach ann an gnìomh, tha moladh leis an ainm cheart mar thoradh. >>>collections.namedtoplo Traceback (an gairm mu dheireadh mu dheireadh): File « ", loidhne 1, a-steach AttributeError: chan eil feart 'namedtoplo' aig modal 'cruinneachaidhean'. An robh thu a’ ciallachadh: tuple ainmichte?

  • Airson innealan debugging agus profilers, tha tachartasan lorg air an toirt seachad leis na h-àireamhan loidhne de chòd a chaidh a chuir gu bàs.
  • Chuir sinn ris an t-suidheachadh sys.flags.warn_default_encoding gus rabhadh a nochdadh mu mhearachdan a dh’ fhaodadh a bhith co-cheangailte ri TextIOWrapper agus fosgail () a’ giullachd fhaidhlichean còdaichte UTF-8 gun a bhith a’ sònrachadh an roghainn ‘còdachadh =»utf-8″’ (tha còdachadh ASCII air a chleachdadh gu bunaiteach) . Tha an sgaoileadh ùr cuideachd a’ toirt comas air luach ‘encoding="locale"’ a shònrachadh gus an còdachadh a shuidheachadh stèidhichte air an locale gnàthach.
  • Chaidh gnìomhaiche ùr a chuir ris a’ mhodal clò-sgrìobhaidh, a bheir seachad innealan airson notaichean seòrsa a shònrachadh, a leigeas leis a’ cho-chòrdadh “X | Y" gus aon de na seòrsaichean a thaghadh (seòrsa X no seòrsa Y). def ceàrnag (àireamh: int | fleòdradh) -> int | fleòdradh: àireamh tilleadh ** Tha 2 co-ionann ris an togalach a fhuair taic roimhe: ceàrnag def (àireamh: Aonadh[int, fleòdradh]) -> Aonadh[int, fleòdradh]: àireamh tilleadh ** 2
  • Chaidh an gnìomhaiche Concatenate agus an caochladair ParamSpec a chur ris a’ mhodal clò-sgrìobhaidh, a leigeas leat fiosrachadh a bharrachd a thoirt seachad airson sgrùdadh seòrsa statach nuair a bhios tu a’ cleachdadh Callable. Bidh am modal clò-sgrìobhaidh cuideachd a’ cur ri luachan sònraichte TypeGuard gus gnìomhan dìon seòrsa a chomharrachadh agus TypeAlias ​​gus alias seòrsa a mhìneachadh gu soilleir. StrCache: TypeAlias ​​= 'Tasgadh[str]' # seòrsa alias
  • Bidh an gnìomh zip () a’ cur an gnìomh bratach “teann” roghainneil, a bhios, nuair a thèid a shònrachadh, a’ sgrùdadh a bheil na h-argamaidean a thathar ag aithris den aon fhaid. >>> liosta (zip (('a', 'b', 'c'), (1, 2, 3), teann = Fìor)) [('a', 1), ('b', 2) , ('c', 3)] >>> liosta (zip (raon (3), ['fee', 'fi', 'fo', 'fum'], strict=True)) Traceback (an gairm mu dheireadh mu dheireadh) ): … ValueError: tha zip() argamaid 2 nas fhaide na argamaid 1
  • Thathas a’ moladh gnìomhan togte ùra aiter() agus anext() le bhith a’ buileachadh analogues asyncronach ris na gnìomhan iter () agus an ath rud ().
  • Tha obair an luchd-togail str (), bytes () agus bytearray () nuair a bhios iad ag obair le nithean beaga air a luathachadh le 30-40%.
  • Lùghdaich an àireamh de ghnìomhachd in-mhalairt anns a’ mhodal runpy. Tha an àithne “python3 -m module_name” a-nis a’ ruith gu cuibheasach 1.4 uair nas luaithe air sgàth lughdachadh mhodalan a chaidh a thoirt a-steach bho 69 gu 51.
  • Bidh an stiùireadh LOAD_ATTR a’ cleachdadh inneal caching airson opcodes fa-leth, a rinn e comasach obair le buadhan cunbhalach a luathachadh suas ri 36%, agus le slotan suas ri 44%.
  • Nuair a bhios tu a’ togail Python leis an roghainn “--enable-optimizations”, tha am modh “-fno-semantic-interposition” a-nis air a chomasachadh, a leigeas leis an eadar-theangair a luathachadh suas ri 30% an taca ri togail leis an “--enable-shared”. ” roghainn.
  • Tha na modalan hashlib agus ssl air taic a chuir ri OpenSSL 3.0.0 agus stad iad a’ toirt taic do dhreachan OpenSSL nas sine na 1.1.1.
  • Chaidh an t-seann parser a thoirt air falbh, a chaidh a chuir na àite anns a’ mheur roimhe le parser PEG (Parsing Expression Grammar). Chaidh am modal cruth a thoirt air falbh. Chaidh am paramadair lùb a thoirt air falbh bhon API asyncio. Chaidh dòighean nach deach a mholadh roimhe a thoirt air falbh. Chaidh na gnìomhan Py_UNICODE_str* a bhios a’ làimhseachadh sreangan Py_UNICODE* a thoirt air falbh.
  • Cha deach am modal distutils a mholadh agus thathar an dùil a thoirt air falbh ann am Python 3.12. An àite distutils, thathas a’ moladh na modalan setuptools, pacadh, àrd-ùrlar, shutil, subprocess agus sysconfig a chleachdadh. Tha an structar wstr ann am PyUnicodeObject air a bhith air a mholadh agus air a chlàradh airson a thoirt air falbh.

Source: fosgailtenet.ru

Cuir beachd ann