Ntọhapụ nke asụsụ mmemme Python 3.10

Mgbe otu afọ nke mmepe gasịrị, ewepụtara ntọhapụ dị ịrịba ama nke asụsụ mmemme Python 3.10. A ga-akwado alaka ọhụrụ ahụ maka otu afọ na ọkara, mgbe nke ahụ gasịrị maka afọ atọ na ọkara ọzọ, a ga-emepụta ihe ndozi maka ya iji wepụ ihe ndị na-adịghị ike.

N'otu oge ahụ, ule alfa nke Python 3.11 alaka malitere (dị ka usoro mmepe ọhụrụ si dị, ọrụ na alaka ọhụrụ na-amalite ọnwa ise tupu mwepụta nke alaka gara aga wee rute ọkwa ule alfa site na oge ntọhapụ ọzọ. ). Alaka Python 3.11 ga-adị na ntọhapụ alfa maka ọnwa asaa, n'oge nke a ga-agbakwunye atụmatụ ọhụrụ ma dozie ahụhụ. Mgbe nke a gasịrị, a ga-anwale ụdị beta maka ọnwa atọ, n'ime oge a ga-amachibido ịgbakwunye atụmatụ ọhụrụ na a ga-akwụ ụgwọ niile maka idozi ahụhụ. N'ime ọnwa abụọ gara aga tupu ntọhapụ, alaka ụlọ ọrụ ahụ ga-adị na ọkwa ntọhapụ, nke a ga-eme nkwụsi ike ikpeazụ.

Ihe mgbakwunye ọhụrụ na Python 3.10 gụnyere:

  • Ndị na-arụ ọrụ "match" na "case" arụ ọrụ maka nhazi ụkpụrụ, na-eme ka agụ koodu dị mfe, na-eme ka ndakọrịta nke ihe Python aka ike, na-abawanye ntụkwasị obi koodu site na nlele ụdị static dị elu. Mmejuputa ya dị ka onye na-arụ ọrụ "egwuregwu" nyere na Scala, Rust, na F#, nke na-atụnyere nsonaazụ nke okwu akọwapụtara na ndepụta nke usoro edepụtara na ngọngọ dabere na onye ọrụ "ikpe".

    def http_error(ọnọdụ): ọnọdụ egwuregwu: ikpe 400: laghachi “Arịrịọ ọjọọ” ikpe 401|403|404: laghachi “Achọghị ka ekweta” ikpe 418: laghachi “Abụ m teapot” ikpe _: laghachi “Ihe ọzọ”

    Ọ ga-ekwe omume ịkwatu ihe, tuples, ndepụta na usoro aka ike iji kechie mgbanwe dabere na ụkpụrụ dị adị. A na-ahapụ ya ịkọwapụta ndebiri akwụ ụgwọ, jiri ọnọdụ “ọ bụrụ” agbakwunyere na ndebiri, jiri masks (“[x, y, *izu ike]”), maapụ igodo/uru (dịka ọmụmaatụ, {“bandwidth”: b, “latency). ": l} iji wepụta ụkpụrụ "bandwidth" na "latency" site na akwụkwọ ọkọwa okwu), wepụta subtemplates (":="onye ọrụ), jiri aha ya mere nrụnye na ndebiri. Na klaasị, ọ ga-ekwe omume iji usoro “__match__()” hazie omume dakọtara.

    site na klaasị data na-ebubata dataclass @class class Point: x: int y: int def whereis(point): point point: case Point(0, 0): ebipụta ("si mmalite") ikpe Point(0, y): bipụta (f" Y={y}") ikpe Point(x, 0): ebipụta (f"X={x}") ikpe Point(): bipụta("Ebe ọzọ") ikpe _: bipụta("Ọbụghị isi") dakọtara isi: ihe ikpe (x, y) ma ọ bụrụ x == y: ebipụta (f"Y=X na {x}") ikpe Point(x, y): bipụta (f"Ọ bụghị na diagonal") RED, GREEN, Acha anụnụ anụnụ = 0, 1, 2 agba agba: ikpe RED: ebipụta ("Ahụrụ m ọbara ọbara!") ikpe GREEN: ebipụta ("Ahịhịa bụ akwụkwọ ndụ akwụkwọ ndụ") ikpe BLUE: ebipụta ("Ana m ahụ blues:(")

  • Ọ ga-ekwe omume ugbu a iji akara akara n'ime nkwupụta iji kewaa nkọwa nke mkpokọta ndị njikwa ọnọdụ n'ofe ahịrị dị iche iche. A na-ahapụkwa ya ịhapụ rịkọm mgbe onye njikwa ọnọdụ ikpeazụ n'ime otu: ya na ( CtxManager1 () dịka ọmụmaatụ1, CtxManager2 () dịka ọmụmaatụ2, CtxManager3 () dịka ọmụmaatụ3,): ...
  • Mkpesa emelitere nke koodu ọnọdụ nke njehie metụtara nkwado nkwado na-emechighị emechi na nhota n'asụsụ nkịtị. Dịka ọmụmaatụ, mgbe enwere ihe nkwado emechiri emechi, kama ịkọ njehie syntax na arụrụ ọrụ na-esote, ihe nrịbama na-egosipụtazi ihe nkwado mmeghe wee gosi na enweghị mgbochi mmechi. Faịlụ "example.py", ahịrị 1 tụrụ anya = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' emechiri emechi

    Agbakwunyere agbakwunyere ozi njehie syntax pụrụ iche: akara ":" na-efu n'ihu ngọngọ na n'akwụkwọ ọkọwa okwu, ọ bụghị ikewa tuple na akara nna, na-efunahụ rịkọm na listi, na-akọwa ngọngọ "gbalịa" na-enweghị "ma e wezụga" na "ikpeazụ", na-eji "= " kama " = = " na ntụnyere, na-akọwapụta * -mpụta na f-strings. Tụkwasị na nke ahụ, ọ na-eme ka okwu nsogbu ahụ pụta ìhè, ọ bụghị nanị mmalite, na ozi ndị ọzọ doro anya banyere ihe ndị na-ezighị ezi jikọtara ya na ntinye na-ezighị ezi. >>> def foo(): ... ọ bụrụ lel: ... x = 2 Faịlụ " ", ahịrị 3 x = 2 ^ IndentationError: na-atụ anya na ngọngọ agbakwunyere mgbe nkwupụta 'ọ bụrụ' dị na ahịrị 2

    Na mperi nke typos kpatara n'aha njirimara na aha agbanwe agbanwe na ọrụ, a na-ewepụta nkwenye nwere aha ziri ezi. >>> mkpokọta.namedtoplo Traceback (oku ikpeazụ kacha nso): Faịlụ « ", ahịrị 1, in AttributeError: modul 'mkpokọta' enweghị njiri mara 'namedtoplo'. Ị pụtara: nametuple?

  • Maka ngwaọrụ nbibi na ndị profaịlụ, a na-enye ihe omume traktị na nọmba ahịrị nke koodu emegburu.
  • Agbakwunyere ntọala sys.flags.warn_default_encoding iji gosipụta ịdọ aka ná ntị gbasara mmejọ ndị nwere ike jikọtara ya na TextIOWrapper na mepee () nhazi UTF-8 faịlụ ndị etinyere na-enweghị n'ezoghị ọnụ 'encoding=»utf-8″' (ASCII encoding na-eji ndabara) . Mwepụta ọhụrụ a na-enyekwa ikike ịkọwa uru 'encoding="locale"' iji tọọ ngbanwe dabere na mpaghara dị ugbu a.
  • Agbakwunyela onye ọrụ ọhụrụ na modul ederede, nke na-enye ngwaọrụ maka ịkọwapụta nkọwa ụdị, na-enye ohere iji syntax "X | Y" ka ịhọrọ otu n'ime ụdị (ụdị X ma ọ bụ Y). def square (nọmba: int | sere n'elu) -> int | sere n'elu: nọmba nloghachi ** 2 bụ ihe a na-akwado na mbụ: def square (nọmba: Union[int, float]) -> Union[int, float]: nọmba nloghachi ** 2
  • Agbakwunyela onye ọrụ Concatenate na ParamSpec variable na modul mpịnye, nke na-enye gị ohere ịnyefe ozi ndị ọzọ maka nlele ụdị static mgbe ị na-eji Callable. Modul mpempe akwụkwọ na-agbakwunye ụkpụrụ pụrụ iche TypeGuard iji kọwaa ọrụ nchekwa ụdị yana TypeAlias ​​iji kọwaa nke ọma ụdị utu aha. StrCache: TypeAlias ​​= 'Cache[str]' # ụdị utu aha
  • Ọrụ zip() na-emejuputa ọkọlọtọ “siri ike” nhọrọ, nke, mgbe akọwapụtara ya, na-enyocha ma arụmụka a na-ekwughachi hà otu ogologo. >>> ndepụta (zip (('a', 'b', 'c'), (1, 2, 3), siri ike = Ezi)) [('a', 1), ('b', 2) , ('c', 3)]>>> ndepụta(zip(nsokwa(3),'fee','fi','fo','fum'], strict=True)) Ntughari (oku ikpeazụ kacha nso nso a ): … ValueError: zip() arụmụka 2 dị ogologo karịa arụmụka 1
  • A na-atụpụta ọrụ arụrụ n'ime ọhụrụ aiter() na ọzọ () na mmejuputa analogues asynchronous na ọrụ iter() na next().
  • Ọrụ nke str (), bytes () na bytearray () ndị na-arụ ọrụ mgbe a na-arụ ọrụ na obere ihe ejirila 30-40% mee ngwa ngwa.
  • Ewelatala ọnụ ọgụgụ ọrụ mbubata na modul runpy. Iwu "python3 -m module_name" na-agba ọsọ ugbu a na nkezi 1.4 ugboro n'ihi mbelata nke modul ebubata site na 69 ruo 51.
  • Ntuziaka LOAD_ATTR na-eji usoro caching maka opcodes n'otu n'otu, nke mere ka o kwe omume ịkwalite ọrụ na njirimara oge niile ruo 36%, yana oghere site na 44%.
  • Mgbe ị na-ewu Python na nhọrọ "-enable-optimizations", a na-emezi ọnọdụ "-fno-semantic-interposition", nke na-enye ohere iji mee ka onye ntụgharị okwu ọsọ ọsọ ruo 30% ma e jiri ya tụnyere ụlọ na "-enable-Shared". ” nhọrọ.
  • Modul hashlib na ssl agbakwunyela nkwado maka OpenSSL 3.0.0 wee kwụsị ịkwado ụdị OpenSSL tọrọ karịa 1.1.1.
  • Ewepụla ihe nzacha ochie, bụ nke PEG (Parsing Expression Grammar) dochie na ngalaba gara aga. Ewepụla modul nhazi. Ewepụla paramita loop na asyncio API. E wepụrụ usoro ndị ewepụrụ na mbụ. Ewepụla ọrụ Py_UNICODE_str* nke na-emegharị eriri Py_UNICODE*.
  • Akwụsịla modul distutils ma akwadoro iwepụ ya na Python 3.12. Kama distutils, a na-atụ aro ka iji setịpụ ngwa, nkwakọ ngwaahịa, ikpo okwu, shutil, subprocess na sysconfig modul. Akwụsịla ihe owuwu wstr dị na PyUnicodeObject ma hazie maka iwepụ ya.

isi: opennet.ru

Tinye a comment