Hoʻokuʻu ʻia ka ʻōlelo hoʻolālā Python 3.11

Ma hope o hoʻokahi makahiki o ka hoʻomohala ʻana, ua paʻi ʻia ka hoʻokuʻu nui ʻana o ka Python 3.11 programming language. E kākoʻo ʻia ka lālā hou no hoʻokahi makahiki a me ka hapa, a ma hope o ia e kūkulu hou ʻia ai ʻekolu makahiki a me ka hapa no ka hoʻoponopono ʻana i nā nāwaliwali.

I ka manawa like, hoʻomaka ka hoʻāʻo alpha o ka lālā Python 3.12 (e like me ka papa hana hoʻomohala hou, hoʻomaka ka hana ma kahi lālā hou i ʻelima mau mahina ma mua o ka hoʻokuʻu ʻia ʻana o ka lālā mua a hiki i ka pae hoʻāʻo alpha ma ka manawa o ka hoʻokuʻu ʻana. ). E hoʻokuʻu ʻia ka lālā Python 3.12 no ʻehiku mahina, kahi e hoʻohui ʻia ai nā hiʻohiʻona hou a hoʻopaʻa ʻia nā pōpoki. Ma hope o kēia, e hoʻāʻo ʻia nā mana beta no ʻekolu mahina, kahi e pāpā ʻia ai ka hoʻohui ʻana i nā hiʻohiʻona hou a e uku ʻia nā manaʻo āpau i ka hoʻoponopono ʻana i nā pōpoki. No nā mahina ʻelua i hala ma mua o ka hoʻokuʻu ʻia ʻana, aia ka lālā i ka pae moho hoʻokuʻu, kahi e hoʻokō ʻia ai ka hoʻopaʻa hope.

ʻO nā hoʻohui hou i ka Python 3.11 ka:

  • Ua hana ʻia nā hana koʻikoʻi e hoʻomaikaʻi i ka hana. Aia ka lālā hou i nā loli e pili ana i ka wikiwiki a me ka hoʻokomo ʻana i nā kelepona hana, ka hoʻohana ʻana i nā unuhi unuhi wikiwiki o nā hana maʻamau (x+x, x*x, xx, a[i], a[i] = z, f(arg) C(arg), o.method(), o.attr = z, *seq), a me nā hoʻoponopono i hoʻomākaukau ʻia e nā papahana Cinder a me HotPy. Ma muli o ke ʻano o ka ukana, aia ka piʻi ʻana o ka wikiwiki hoʻokō code o 10-60%. Ma ka awelika, ua hoʻonui ʻia ka hana ma ka pyperformance test suite e 25%.

    Ua hoʻolālā hou ʻia ka mīkini caching bytecode, kahi i hōʻemi ai i ka manawa hoʻomaka o ka unuhi ʻōlelo ma 10-15%. Hoʻokaʻawale ʻia nā mea me ke code a me ka bytecode e ka unuhi ʻōlelo, i hiki ai ke hoʻopau i nā pae o ka unmarshalling bytecode i unuhi ʻia mai ka cache a me ka hoʻololi ʻana i nā mea me ke code e waiho ʻia i loko o ka hoʻomanaʻo ikaika.

  • I ka hōʻike ʻana i nā ʻāpana kelepona i nā memo diagnostic, hiki ke hōʻike i ka ʻike e pili ana i ka ʻōlelo i kumu i ka hewa (ma mua, ʻo ka laina wale nō i hōʻike ʻia me ka ʻole o ka kikoʻī ʻana i ka ʻāpana o ka laina i hoʻokumu i ka hewa). Hiki ke loaʻa ka ʻike i hoʻonui ʻia ma o ka API a hoʻohana ʻia no ka palapala ʻana i nā kuhikuhi bytecode pākahi i kahi kūlana kikoʻī i ke kumu kumu me ka hoʻohana ʻana i ke ʻano codeobject.co_positions() a i ʻole ka hana C API PyCode_Addr2Location(). ʻOi aku ka maʻalahi o ka hoʻololi ʻana i nā pilikia me nā mea puke wehewehe ʻōlelo pūnana, nā kelepona hana lehulehu, a me nā ʻōlelo helu helu paʻakikī. Traceback (kahea hope loa loa): File "calculation.py", laina 54, ma ka hopena = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: mahele me ka zero
  • Hoʻohui i ke kākoʻo no nā hui ʻokoʻa, hāʻawi i ka papahana i ka hiki ke hana a hana i nā ʻokoʻa like ʻole i ka manawa hoʻokahi. No ka hui ʻana i nā ʻokoʻa he nui a hoʻonui pū iā lākou, ua hoʻolauna ʻia nā ʻano ʻokoʻa hou ExceptionGroup a me BaseExceptionGroup, a ua hoʻohui ʻia ka ʻōlelo "koe *" e hōʻike i nā ʻokoʻa pākahi mai kahi hui.
  • Ua hoʻohui ʻia ke ʻano add_note () i ka papa BaseException, e ʻae iā ʻoe e hoʻopili i kahi memo kikokikona i ka ʻokoʻa, no ka laʻana, hoʻohui i ka ʻike pili ʻole i loaʻa ke kiola ʻia ka ʻokoʻa.
  • Hoʻohui ʻia kahi ʻano Self kūikawā e hōʻike i ka papa pilikino o kēia manawa. Hiki ke hoʻohana iā ʻoe iho e hōʻike i nā ala e hoʻihoʻi i kahi hiʻohiʻona o kāna papa ma kahi ala maʻalahi ma mua o ka hoʻohana ʻana iā TypeVar. papa MyLock: def __enter__(self) -> Self: self.lock() return self
  • Hoʻohui ʻia kahi ʻano LiteralString kūikawā hiki ke hoʻokomo wale i nā string literals i kūpono me ke ʻano LiteralString (ʻo ia hoʻi, nā kaula kikoʻī a me LiteralString, akā ʻaʻole nā ​​kaula str i hui ʻia). Hiki ke hoʻohana ʻia ke ʻano LiteralString e kaupalena i ka hele ʻana o nā manaʻo hoʻopaʻapaʻa string i nā hana, hoʻololi i nā ʻāpana o nā kaula i hiki ke alakaʻi i nā nāwaliwali, no ka laʻana, i ka wā e hana ai i nā kaula no nā nīnau SQL a i ʻole nā ​​​​kauoha shell. def run_query(sql: LiteralString) -> ... ... def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> ʻAʻohe: run_query("KOHO * MAI nā haumāna") # ok run_query(literal_string) # ok run_query("KOHO * FROM" + literal_string) # ok run_query(arbitrary_string) # Hapa holo_query( # Hapa f "KOHO * MAI nā haumāna WHERE inoa = {arbitrary_string}" )
  • Ua hoʻohui ʻia ke ʻano TypeVarTuple, e ʻae ana i ka hoʻohana ʻana i nā generics variable, ʻaʻole e like me TypeVar, ʻaʻole i uhi ʻia i hoʻokahi ʻano, akā he helu ʻokoʻa o nā ʻano.
  • Aia ka waihona maʻamau i ka module tomllib me nā hana no ka parsing i ka format TOML.
  • Hiki ke hōʻailona i nā ʻāpana pākahi o nā puke wehewehe ʻōlelo i paʻi ʻia (TypedDict) me nā lepili Koi a ʻAʻole Pono e hoʻoholo i nā kahua i makemake ʻia a koho ʻia (ma ke ʻano maʻamau, koi ʻia nā kahua āpau i hōʻike ʻia inā ʻaʻole i hoʻonohonoho ʻia ka helu helu i False). papa Kiʻiʻoniʻoni(TypedDict): poʻo inoa: str makahiki: ʻAʻole Pono[int] m1: Kiʻiʻoniʻoni = {"title": "Black Panther", "makahiki": 2018} # OK m2: Movie = {"title": "Star Wars" } # OK (he koho ka mahina makahiki) m3: Kiʻiʻoniʻoni = {“makahiki”: 2022} # Hapa, ʻaʻole i hoʻopiha ʻia ka papa inoa i makemake ʻia)
  • Ua hoʻohui ʻia ka papa TaskGroup i ka module asyncio me ka hoʻokō ʻana i kahi luna hoʻonohonoho asynchronous e kali ana i kahi hui o nā hana e hoʻopau. Hoʻohui ʻia nā hana i kahi hui me ka hoʻohana ʻana i ke ʻano create_task(). async def main(): async me asyncio.TaskGroup() like tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("Ua pau na hana elua i keia manawa. .")
  • Hoʻohui ʻia @dataclass_transform decorator no nā papa, nā ʻano a me nā hana, ke kuhikuhi ʻia, mālama ka ʻōnaehana nānā ʻano static i ka mea me he mea lā e hoʻohana ana i ka @dataclasses.dataclass decorator. Ma ka laʻana ma lalo nei, e hana like ka papa CustomerModel, i ka wā e nānā ai i nā ʻano like me ka papa me ka @dataclasses.dataclass decorator, ʻo ia hoʻi. e like me ka loaʻa ʻana o kahi ala __init__ e ʻae i ka id a me ka inoa inoa. @dataclass_transform() papa ModelBase: … papa CustomerModel(ModelBase): id: int inoa: str
  • Ma nā ʻōlelo maʻamau, ua hoʻohui ʻia ka hiki ke hoʻohana i ka hui atomic ((?>...)) a me nā quantifiers possessive (*+, ++, ?+, {m,n}+).
  • Hoʻohui ʻia ke koho laina kauoha "-P" a me ka hoʻololi kaiapuni ʻo PYTHONSAFEPATH no ka hoʻopau ʻana i ka hoʻopili ʻakomi ʻana o nā ala faila palekana i ka sys.path.
  • Ua hoʻomaikaʻi maikaʻi ʻia ka pono py.exe no ka paepae Windows, me ka hoʻohui ʻana i ke kākoʻo no ka syntax "-V:". / " a ʻo kekahi "- . "
  • Hoʻololi ʻia nā macros he nui i ka C API i mau hana maʻamau a i ʻole nā ​​​​hana inline.
  • ʻO ka uu, cgi, paipu, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, a me nā modula sunau ua hoʻopau ʻia a e wehe ʻia i ka Python 3.13 hoʻokuʻu. Wehe ʻia nā hana PyUnicode_Encode*.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka