Fa'asa'olotoina o le Python 3.11 polokalame gagana

Ina ua maeʻa le tausaga o le atinaʻe, ua faʻasalalau le faʻasalalauga taua o le Python 3.11 polokalame gagana. O le lala fou o le a lagolagoina mo le tasi ma le afa tausaga, a maeʻa mo le isi tolu ma le afa tausaga, o le a faʻaleleia atili e faʻaumatia ai faʻafitauli.

I le taimi lava e tasi, na amata ai le suʻega o le alpha o le Python 3.12 paranesi (e tusa ai ma le faʻatulagaga fou o le atinaʻe, o le galue i se lala fou e amata i le lima masina aʻo leʻi tatalaina le lala muamua ma oʻo atu i le faʻataʻitaʻiga o le alpha i le taimi o le isi faʻasalalauga. ). O le Python 3.12 lala o le a tuʻuina atu i le alpha release mo le fitu masina, lea o le a faʻaopoopoina ai foliga fou ma faʻamautu faʻamau. A maeʻa lenei mea, o le a faʻataʻitaʻiina lomiga beta mo le tolu masina, lea o le a faʻasaina ai le faʻaopoopoina o foliga fou ma o le a gauai uma i le faʻaleleia o bug. Mo le lua masina mulimuli a'o le'i tatalaina, o le a i ai le lala i le tulaga o le sui tauva, lea o le a faia ai le faʻamautuina mulimuli.

O faʻaopoopoga fou ile Python 3.11 e aofia ai:

  • O galuega taua na faia e fa'amalieina ai le fa'atinoga. O le lala fou e aofia ai suiga e fesoʻotaʻi ma le faʻavavevave ma le faʻaogaina o le faʻaogaina o le telefoni, le faʻaaogaina o faʻamatalaga vave o faʻatinoga masani (x+x, xx, xx, a[i], a[i] = z, f(arg) C(arg), o.method(), o.attr = z, *seq), fa'apea fo'i fa'ata'ita'iga na saunia e le Cinder ma le HotPy poloketi. Faʻalagolago i le ituaiga o uta, o loʻo i ai se faʻaopoopoga i le saoasaoa o le faʻatinoina o tulafono ole 10-60%. I le averesi, o faʻatinoga i luga o le pyperformance suʻega suʻega na faʻateleina i le 25%.

    O le bytecode caching mechanism ua toe faʻafouina, lea na faʻaititia ai le faʻaliliuga taimi amata ile 10-15%. O mea e iai le code ma le bytecode ua tuʻuina atu nei e le faʻaliliuga, lea na mafai ai ona faʻaumatia laʻasaga o le unmarshalling bytecode na maua mai le cache ma le liua o mea ma le code e tuʻu i le mafaufau malosi.

  • Pe a faʻaalia faʻailoga telefoni i feʻau faʻamaonia, ua mafai nei ona faʻaalia faʻamatalaga e uiga i le faʻamatalaga na mafua ai le mea sese (muamua, naʻo le laina na faʻamaonia e aunoa ma le faʻamalamalamaina o le vaega o le laina na mafua ai le mea sese). E mafai fo'i ona maua fa'amatalaga fa'alautele e ala i le API ma fa'aaoga e fa'afanua ai fa'atonuga ta'itasi bytecode i se tulaga fa'apitoa i le fa'ailoga puna e fa'aaoga ai le codeobject.co_positions() method or the C API function PyCode_Addr2Location(). O le suiga ua fa'afaigofieina ai le fa'avasegaina o fa'afitauli i mea fa'aigoa lomifefiloi, tele vala'au fa'atino, ma fa'amatalaga fa'atusa lavelave. Toe fo'i (valaau lata mai mulimuli): Faila "calculation.py", laina 54, i'uga = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: vaevaega ile zero
  • Faaopoopo le lagolago mo vaega tuusaunoaga, tuuina atu i le polokalame le tomai e gaosia ma faagaioi le tele o tuusaunoaga eseese i le taimi e tasi. Ina ia fa'avasega le tele o tuusaunoaga ma fa'atupu fa'atasi, o ituaiga fa'apitoa fou ExceptionGroup ma BaseExceptionGroup ua tu'uina mai, ma ua fa'aopoopoina le fa'aaliga "vagana ai*" e fa'ailoa ai tu'usuga ta'ito'atasi mai se vaega.
  • O le add_note() metotia ua faʻaopoopoina i le vasega BaseException, faʻatagaina oe e faʻapipiʻi se faʻamatalaga tusitusia i se tuusaunoaga, mo se faʻataʻitaʻiga, faʻaopoopoina faʻamatalaga faʻamatalaga e le o maua pe a lafo le tuusaunoaga.
  • Fa'aopoopoina se ituaiga Self fa'apitoa e fai ma sui o le vasega tumaoti o lo'o iai nei. E mafai ona faʻaaogaina e oe lava ia faʻamatalaga auala e toe faʻafoʻi ai se faʻataʻitaʻiga o lana vasega i se auala faigofie nai lo le faʻaaogaina o TypeVar. vasega MyLock: def __enter__(self) -> Self: self.lock() return self
  • Fa'aopoopoina se ituaiga LiteralString fa'apitoa e mafai ona aofia ai na'o le manoa e fetaui ma le ituaiga LiteralString (fa'atusa, e leai ni manoa ma LiteralString, ae le o ni manoa fa'atasi pe tu'ufa'atasi). O le LiteralString type e mafai ona faʻaaogaina e faʻatapulaʻa ai le pasia o finauga o manoa i galuega, suia faʻafuaseʻi o vaega o manoa e mafai ona oʻo atu ai i faʻafitauli, mo se faʻataʻitaʻiga, pe a fatuina manoa mo fesili SQL poʻo poloaiga atigi. def run_query(sql: LiteralString) -> ... ... def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> Leai: run_query("FILIFILI * MAI tamaiti aoga") # ok run_query(literal_string) # ok run_query("FILIFILI * FROM" + literal_string) # ok run_query(arbitrary_string) # Error run_query( # Error f"FILIFILI * MAI tamaiti a'oga WHERE igoa = {arbitrary_string}" )
  • O le TypeVarTuple type ua faʻaopoopoina, faʻatagaina le faʻaogaina o generics fesuiaʻi, e le pei o TypeVar, lea e le aofia ai se tasi ituaiga, ae o se numera o ituaiga.
  • O le faletusi masani e aofia ai le tomllib module ma galuega mo le faʻavasegaina o le TOML format.
  • E mafai ona fa'ailoga elemene ta'itasi o lomifefiloi lolomi (TypedDict) fa'atasi ai ma fa'ailoga Manaomia ma NotRequired e fa'amautu ai fanua mana'omia ma fa'atonu (fa'aletonu, e mana'omia uma fanua fa'ailoa pe a le seti le parakalafa atoa ile False). vasega Ata Ata (TypedDict): ulutala: str tausaga: Le Manaomia[int] m1: Ata tifaga = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # Ua lelei (o le fanua o le tausaga e filifili ai) m3: Ata tifaga = {“tausaga”: 2022} # Sese, e le'i fa'atumuina le fanua fa'aigoa mana'omia)
  • Ua faaopoopo le vasega TaskGroup i le module asyncio faatasi ai ma le faʻatinoina o se pule o faʻamatalaga asynchronous o loʻo faʻatali mo se vaega o galuega e faʻamaeʻa. O le faʻaopoopoina o galuega i se kulupu e faia i le faʻaogaina o le create_task() method. async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(other_coro(...)) print("Ua uma nei galuega uma e lua .")
  • Faʻaopoopo le @dataclass_transform decorator mo vasega, metotia ma galuega, pe a faʻamaonia, o le faʻaogaina o le siakiina o ituaiga e faʻaogaina le mea e pei o le faʻaaogaina o le @dataclasses.dataclass decorator. I le faʻataʻitaʻiga o loʻo i lalo, o le vasega CustomerModel, pe a siaki ituaiga, o le a faʻatautaia tutusa ma se vasega ma le @dataclasses.dataclass decorator, i.e. e pei o le i ai o se __init__ metotia e talia id ma igoa fesuiaiga. @dataclass_transform() vasega ModelBase: ... vasega CustomerModel(ModelBase): id: int igoa: str
  • I faʻamatalaga masani, o le mafai ona faʻaogaina le faʻavasegaina o atomic ((?>...)) ma quantifiers possessive (*+, ++, ?+, {m,n}+) ua faʻaopoopoina.
  • Fa'aopoopoina le "-P" filifiliga laina fa'atonu ma le PYTHONSAFEPATH fesuiaiga o le siosiomaga e fa'amalo ai le fa'apipi'i otometi o ala faila e ono le saogalemu i le sys.path.
  • O le aoga py.exe mo le Windows platform ua matua faʻaleleia, faʻaopoopoina le lagolago mo le "-V:" syntax. / " e faaopopo i le "- . "
  • Tele macros i le C API ua liua i galuega masani poʻo le tumau i totonu.
  • O uu, cgi, paipa, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, ma sunau modules ua le toe faaaogaina ma o le a aveesea i le Python 3.13 tatalaina. Ave'esea galuega PyUnicode_Encode*.

puna: opennet.ru

Faaopoopo i ai se faamatalaga