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

Ma hope o hoʻokahi makahiki o ka hoʻomohala ʻana, hōʻike ʻia ka hoʻokuʻu nui ʻana o ka Python 3.10 programming language. E kākoʻo ʻia ka lālā hou no hoʻokahi makahiki a me ka hapa, a ma hope o ia no nā makahiki ʻekolu a me ka hapa, e hana ʻia nā hoʻoponopono no ka hoʻopau ʻana i nā nāwaliwali.

I ka manawa like, hoʻomaka ka hoʻāʻo alpha o ka lālā Python 3.11 (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.11 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.10 ka:

  • Hoʻokomo ʻia nā mea hoʻohana "match" a me "case" no ka hoʻohālikelike ʻana i ke ʻano, e hoʻomaikaʻi i ka heluhelu ʻana i ke code, hoʻomaʻamaʻa i ka hoʻohālikelike ʻana i nā mea Python arbitrary, a hoʻonui i ka hilinaʻi code ma o ka nānā ʻana i ke ʻano static type. ʻO ka hoʻokō ʻana e like me ka mea hoʻohana "match" i hāʻawi ʻia ma Scala, Rust, a me F #, e hoʻohālikelike i ka hopena o kahi ʻōlelo kikoʻī me kahi papa inoa o nā hiʻohiʻona i helu ʻia ma nā poloka e pili ana i ka mea hoʻohana "hihia".

    def http_error(status): kūlana hoʻokūkū: hihia 400: hoʻihoʻi i ka hihia "Nīnau maikaʻi ʻole" 401|403|404: hoʻihoʻi "ʻAʻole i ʻae ʻia" hihia 418: hoʻihoʻi i ka hihia "He kīʻaha au" _: hoʻihoʻi "He mea ʻē aʻe"

    Hiki iā ʻoe ke wehe i nā mea, nā tuples, nā papa inoa, a me nā kaʻina like ʻole e hoʻopaʻa i nā mea hoʻololi e pili ana i nā waiwai i loaʻa. Ua ʻae ʻia ka wehewehe ʻana i nā mamana nested, hoʻohana i nā kūlana "inā" hou i ka template, hoʻohana i nā masks ("[x, y, *rest]"), kī/waiwai palapala palapala (no ka laʻana, {"bandwidth": b, "latency ”: l} e unuhi i nā waiwai "bandwidth" a me "latency" mai kahi puke wehewehe ʻōlelo), e unuhi i nā subtemplates (":=" operator), e hoʻohana i nā mea i kapa ʻia i loko o kahi template. Ma nā papa, hiki ke hoʻopilikino i ke ʻano hoʻohālikelike me ke ʻano "__match__()".

    mai nā papa ʻikepili e hoʻokomo i ka papa ʻikepili @class class Lae: x: int y: int def whereis(point): helu hoʻohālikelike: case Point (0, 0): paʻi ("Origin") case Point (0, y): paʻi (f" Y={y}") pahu kiko (x, 0): paʻi(f"X={x}") pahu pahu (): paʻi("Ma kahi ʻē aʻe") pahu _: paʻi ("ʻAʻole kahi kiko") kiko: pahu Kuhi(x, y) ina x == y: paʻi(f"Y=X ma {x}") pahu kiko (x, y): paʻi(f "ʻAʻole ma ka diagonal") ULAULA, OMAOMAO, BLUE = 0, 1, 2 kala hoʻohālikelike: pahu ʻulaʻula: paʻi("ʻike wau i ka ʻulaʻula!") pahu ʻōmaʻomaʻo: paʻi ("ʻōmaʻomaʻo ka mauʻu") pahu BLUE: paʻi ("Ke manaʻo nei au i ka uliuli :(")

  • Hiki i kēia manawa ke hoʻohana i nā pale i loko o ka me ka ʻōlelo e hoʻokaʻawale i ka wehewehe ʻana o kahi hōʻiliʻili o nā mana pōʻaiapili ma nā laina he nui. Ua ʻae ʻia e waiho i kahi koma ma hope o ka luna pōʻaiapili hope loa i loko o ka hui: me ( CtxManager1() as example1, CtxManager2() as example2, CtxManager3() as example3, ): ...
  • Hoʻomaikaʻi ʻia ka hōʻike ʻana o ke code wahi o nā hewa e pili ana i nā braces i hoʻopaʻa ʻole ʻia a me nā huaʻōlelo ma nā string literals. No ka laʻana, inā loaʻa kahi paʻa paʻa ʻole, ma kahi o ka hōʻike ʻana i kahi hewa syntax ma ke kūkulu aʻe nei, hōʻike ka pointer i kēia manawa i ka brace wehe a hōʻike ʻia ʻaʻohe poloka pani. Kōnae "example.py", laina 1 i manaʻo ʻia = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' ʻaʻole i pani ʻia

    Hoʻohui ʻia nā memo hewa syntax kūikawā hou: nalowale ":" hōʻailona ma mua o kahi poloka a ma nā puke wehewehe'ōlelo, ʻaʻole e hoʻokaʻawale i kahi tuple me nā pale, nele i kahi koma ma nā papa inoa, e kuhikuhi ana i kahi poloka "hoʻāʻo" me ka ʻole "koe" a me ka "hope", me ka hoʻohana ʻana i "= " ma kahi o "= =" i ka hoʻohālikelike ʻana, e kuhikuhi ana i nā *-hōʻike ma nā kaula f. Eia kekahi, e hōʻoia i ka hōʻike pilikia holoʻokoʻa e hōʻike ʻia, ʻaʻole wale i ka hoʻomaka, a me ka ʻike kikoʻī e pili ana i ka pōʻaiapili o nā hewa e pili ana i ka indentation hewa. >>> def foo(): ... if lel: ... x = 2 File " ", laina 3 x = 2 ^ IndentationError: manaʻo ʻia kahi poloka indented ma hope o ka ʻōlelo 'inā' ma ka laina 2

    I nā hewa i hana ʻia e nā typos i nā inoa o nā ʻano a me nā inoa hoʻololi i loko o kahi hana, hoʻopuka ʻia kahi manaʻo me ka inoa pololei. >>>collections.namedtoplo Traceback (kahea hope loa i hala): File « ", laina 1, ma AttributeError: ʻaʻohe ʻano o nā 'collections' module 'namedtoplo'. ʻO kou manaʻo: nametuple?

  • No nā mea hana debugging a me nā profilers, hāʻawi ʻia nā hanana trace me nā helu laina pololei o ke code i hoʻokō ʻia.
  • Hoʻohui ʻia ka hoʻonohonoho sys.flags.warn_default_encoding e hōʻike i kahi ʻōlelo aʻo e pili ana i nā hewa e pili ana me TextIOWrapper a me ka wehe ʻana () i ka hoʻoili ʻana i nā faila UTF-8 me ka ʻole o ka wehewehe pono ʻana i ke koho 'encoding=»utf-8″' (hoʻohana ʻia ka hoʻopili ʻana ASCII ma ka paʻamau). Hāʻawi ka hoʻokuʻu hou i ka hiki ke kuhikuhi i kahi waiwai 'encoding="locale"' e hoʻonohonoho i ka hoʻopili ʻana e pili ana i ka wahi o kēia manawa.
  • Ua hoʻohui ʻia kahi mea hoʻohana hou i ka module type, e hāʻawi ana i nā mea hana no ka wehewehe ʻana i nā ʻano annotations, e ʻae ana i ka hoʻohana ʻana i ka syntax "X | Y" e koho i kekahi o nā ʻano (X type a i Y type). def square(helu: int | lana) -> int | lana: helu hoʻihoʻi ** 2 ua like ia me ka mea i kākoʻo mua ʻia: def square(helu: Union[int, float]) -> Union[int, float]: return number ** 2
  • Ua hoʻohui ʻia ka mea hoʻohana Concatenate a me ka ʻano hoʻololi ParamSpec i ka module type, e ʻae iā ʻoe e hāʻawi i ka ʻike hou aku no ka nānā ʻana i ke ʻano static i ka wā e hoʻohana ai iā Callable. Hoʻohui pū ka module type i nā waiwai kūikawā TypeGuard e hōʻike i nā hana pale ʻano a me TypeAlias ​​​​e wehewehe pono i kahi inoa inoa. StrCache: TypeAlias ​​​​= 'Cache[str]' # he ʻano inoa inoa
  • Hoʻokomo ka hana zip () i kahi hae "koʻikoʻi" koho, i ka wā i kuhikuhi ʻia, e nānā inā he lōʻihi ka lōʻihi o nā manaʻo i hoʻopaʻa ʻia. >>> papa inoa(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2) , ('c', 3)] >>> papa inoa(zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True)) Traceback (kahea hope loa ): … ValueError: zip() ʻoi aku ka lōʻihi o ka hoʻopaʻapaʻa 2 ma mua o ka hoʻopaʻapaʻa 1
  • ʻO nā hana hou i kūkulu ʻia aiter () a me ka anext () ua manaʻo ʻia me ka hoʻokō ʻana i nā analogues asynchronous i nā hana iter () a me ka ().
  • ʻO ka hana o nā mea hana str (), bytes () a me bytearray () i ka wā e hana ai me nā mea liʻiliʻi ua hoʻonui ʻia e 30-40%.
  • Hoemi i ka helu o na hana hookomo i ka runpy module. ʻO ke kauoha "python3 -m module_name" ke holo nei ma ka awelika 1.4 manawa ʻoi aku ka wikiwiki ma muli o ka hōʻemi ʻana o nā modules i lawe ʻia mai 69 a 51.
  • Ke hoʻohana nei ka ʻōlelo LOAD_ATTR i kahi hana hoʻokaʻawale no nā opcodes pākahi, kahi i hiki ai ke wikiwiki i ka hana me nā ʻano maʻamau a hiki i 36%, a me nā slots a hiki i 44%.
  • I ke kūkulu ʻana iā Python me ka koho "--enable-optimizations", ua hoʻohana ʻia ke ʻano "-fno-semantic-interposition", e hiki ai i ka wikiwiki o ka unuhi ʻōlelo a hiki i 30% ke hoʻohālikelike ʻia me ke kūkulu ʻana me ka "--enable-shared. ” koho.
  • Ua hoʻohui ka hashlib a me nā modula ssl i ke kākoʻo no OpenSSL 3.0.0 a ua hoʻōki i ke kākoʻo ʻana i nā mana OpenSSL i ʻoi aku ma mua o 1.1.1.
  • Ua wehe ʻia ka parser kahiko, i pani ʻia ma ka lālā mua e ka parser PEG (Parsing Expression Grammar). Ua wehe ʻia ka module formatter. Ua wehe ʻia ka ʻāpana loop mai ka asyncio API. Ua wehe ʻia nā hana i hoʻopau mua ʻia. Ua wehe ʻia nā hana Py_UNICODE_str* e hoʻopololei ana i nā kaula Py_UNICODE*.
  • Ua hoʻopau ʻia ka module distutils a ua hoʻonohonoho ʻia no ka wehe ʻana ma Python 3.12. Ma kahi o distutils, ua ʻōlelo ʻia e hoʻohana i nā setuptools, packaging, platform, shutil, subprocess a me sysconfig modules. Ua hoʻopau ʻia ka hana wstr ma PyUnicodeObject a ua hoʻonohonoho ʻia no ka wehe ʻana.

Source: opennet.ru

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