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

Ka otu afọ nke mmepe gachara, ebipụtala ntọhapụ dị ịrịba ama nke asụsụ mmemme Python 3.11. 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.12 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.12 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.11 gụnyere:

  • Emeela nnukwu ọrụ iji kwalite arụmọrụ. Alaka ọhụrụ ahụ gụnyere mgbanwe ndị metụtara ngwa ngwa na ntinye akara nke oku ọrụ, iji ndị ntụgharị ngwa ngwa nke arụmọrụ ọkọlọtọ (x+x, x*x, xx, a[i], a[i] = z, f(arg) C ( arg), o.method (), o.attr = z, * seq), yana njikarịcha ndị Cinder na HotPy kwadoro. Dabere n'ụdị ibu ahụ, enwere mmụba nke koodu ogbugbu nke 10-60%. Na nkezi, arụmọrụ na ụlọ nyocha pyperformance mụbara site na 25%.

    Emezigharịla usoro nchekwa bytecode, nke belatara oge mmalite onye ntụgharị site na 10-15%. Ihe ndị nwere koodu na bytecode bụ ndị onye ntụgharị na-ekenye ugbu a n'ụzọ kwụ ọtọ, nke mere ka o kwe omume iwepụ usoro nke bytecode na-adịghị agwụ agwụ nke ewepụtara na cache na ịtụgharị ihe nwere koodu ka etinye ya na ebe nchekwa dị ike.

  • Mgbe ị na-egosipụta akara oku na ozi nyocha, ọ ga-ekwe omume ugbu a igosipụta ozi gbasara okwu kpatara njehie ahụ (na mbụ, ọ bụ naanị ahịrị ka e mere ka ọ pụta ìhè n'enweghị nkọwa nke akụkụ nke akara ahụ kpatara njehie ahụ). Enwere ike nweta ozi nchọta agbatịkwuru site na API wee jiri maapụ ntuziaka bytecode nke ọ bụla gaa n'otu ọnọdụ dị na koodu isi mmalite site na iji usoro codeobject.co_positions() ma ọ bụ ọrụ C API PyCode_Addr2Location(). Mgbanwe ahụ na-eme ka ọ dịkwuo mfe iji ihe akwụkwọ ọkọwa okwu akwụgoro akwụ ụgwọ, ọtụtụ oku arụrụ arụ, na okwu mgbakọ dị mgbagwoju anya iji dozie nsogbu. Nchọgharị (oku ikpeazụ ikpeazụ): Faịlụ "calculation.py", ahịrị 54, n'ihi = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: nkewa site efu
  • Nkwado agbakwunyere maka ndị otu dị iche iche, na-enye mmemme ahụ ike ịmepụta na hazie ọtụtụ ihe dị iche iche n'otu oge. Iji chịkọta ọtụtụ ewepu ma chịkọta ha ọnụ, ewepụtala ụdị ewepụrụ ọhụrụ ExceptionGroup na BaseExceptionGroup, na agbakwunyere okwu “ma e wezụga*” iji gosi ndị wezugara onwe ha na otu.
  • Agbakwunyela usoro add_note() na klaasị BaseException, na-enye gị ohere itinye ndetu ederede na wepụrụ, dịka ọmụmaatụ, na-agbakwunye ozi gburugburu na-adịghị mgbe ewepụrụ iche.
  • Etinyere ụdị onwe pụrụ iche iji nọchite anya klas nkeonwe dị ugbu a. Enwere ike iji onwe ya kọwaa ụzọ na-eweghachi ihe atụ nke klaasị ya n'ụzọ dị mfe karịa iji TypeVar. klas MyLock: def __enter__(self) -> Onwe: self.lock() weghachi onwe
  • Agbakwunyere ụdị LiteralString pụrụ iche nke nwere ike ịgụnye naanị eriri nkịtị dabara na ụdị LiteralString (ya bụ, ụdọ bare na LiteralString, mana ọ bụghị nke aka ike ma ọ bụ eriri str jikọtara). Enwere ike iji ụdị LiteralString belata ngafe nke arụmụka eriri ka ọ rụọ ọrụ, ngbanwe nke akụkụ eriri afọ nke nwere ike ibute adịghị ike, dịka ọmụmaatụ, mgbe ị na-emepụta eriri maka ajụjụ SQL ma ọ bụ iwu shei. def run_query (sql: LiteralString) -> ... ... def oku (arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> Ọ dịghị: run_query ("Họrọ * SITE ụmụ akwụkwọ") # ok run_query(literal_string) # ok run_query("Họrọ * FROM" + literal_string) # ok run_query(arbitrary_string) # Error run_query( # Error f"Họrọ * SITE ụmụ akwụkwọ ebe aha = {arbitrary_string}" )
  • Agbakwunyela ụdị TypeVarTuple, na-enye ohere iji ụdị mkpụrụ ndụ agbanwe agbanwe, n'adịghị ka TypeVar, nke na-ekpuchi ọ bụghị otu ụdị, mana ọnụọgụ aka ike nke ụdị.
  • Ọbá akwụkwọ ọkọlọtọ gụnyere modul tomllib nwere ọrụ maka ịkọwapụta usoro TOML.
  • Ọ ga-ekwe omume iji akara achọrọ na nke achọghị iji akara akụkụ nke akwụkwọ ọkọwa okwu pịnye (TypedDict) n'otu n'otu iji chọpụta mpaghara achọrọ na nhọrọ (site na ndabara, achọrọ ubi niile ekwuputara ma ọ bụrụ na edobeghi oke ngụkọta ya na Ụgha). klas Movie(TypedDict): aha: str afọ: NotRequired[int] m1: Ihe nkiri = {" aha": "Black Panther", "afọ": 2018} # OK m2: Movie = {" aha": "Star Wars" } # OK (mpaghara afọ bụ nhọrọ) m3: Ihe nkiri = {“afọ”: 2022} # Njehie, anaghị ejupụta mpaghara aha achọrọ)
  • E tinyela klaasị TaskGroup na modul asyncio yana mmejuputa onye njikwa ọnọdụ asynchronous nke na-eche ka otu ọrụ rụchaa. A na-eji usoro create_task() tinye ọrụ na otu. async def main(): async with asyncio.TaskGroup() ka tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) ebipụta("Arụ abụọ a emechala ugbu a .")
  • Agbakwunyere @dataclass_transform decorator maka klaasị, ụzọ na ọrụ, mgbe akọwapụtara ya, sistemụ nlele ụdị static na-emeso ihe ahụ dị ka a ga-asị na ọ na-eji @dataclasses.dataclass decorator. N'ihe atụ dị n'okpuru, klas CustomerModel, mgbe ị na-enyocha ụdị, a ga-ahazi ya na otu klas nwere @dataclasses.dataclass decorator, i.e. dị ka inwe usoro __init__ na-anabata id na aha mgbanwe. @dataclass_transform() klas ModelBase: ... klas CustomerModel(ModelBase): id: int aha: str
  • N'okwu a na-ekwu oge niile, agbakwunyela ikike iji mkpokọta atọm ((?>...)) na ihe njiri mara (*+, ++, ?+, {m,n}+).
  • Agbakwunyere nhọrọ ahịrị iwu "-P" yana mgbanwe gburugburu PYTHONSAFEPATH iji gbanyụọ mgbakwunye akpaka nke ụzọ faịlụ enweghị nchekwa na sys.path.
  • Emeziwanye uru py.exe maka ikpo okwu Windows, na-agbakwunye nkwado maka "-V:" syntax. / " na mgbakwunye na "- . "
  • A na-atụgharị ọtụtụ macros na C API ka ọ bụrụ ọrụ inline mgbe niile ma ọ bụ kwụ ọtọ.
  • The uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, snhddr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, na sunau modul emebiela, a ga-ewepụ ya na Python. 3.13 mwepụta. E wepụrụ ọrụ PyUnicode_Encode*.

isi: opennet.ru

Tinye a comment