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

Ma hope o hoʻokahi makahiki a me ka hapa o ka hoʻomohala ʻana hōʻike ʻia hoʻokuʻu ʻōlelo papahana nui Python 3.8. Hoʻoponopono hou no ka lālā Python 3.8 i hoʻonohonohoʻia hoʻokuʻu i loko o 18 mahina. E hoʻopaʻa ʻia nā nāwaliwali koʻikoʻi no 5 mau makahiki a hiki i ʻOkakopa 2024. E hoʻokuʻu ʻia nā hoʻoponopono hoʻoponopono no ka lālā 3.8 i kēlā me kēia mahina ʻelua, me ka hoʻokuʻu mua ʻana o Python 3.8.1 i hoʻonohonoho ʻia no Dekemaba.

Ma waena o nā mea i hoʻohui ʻia nā mea hou:

  • kākoʻo nā hana hāʻawi i loko o nā ʻōlelo paʻakikī. Me ka mea hoʻohana hou ":=", hiki ke hana i nā hana hāʻawi waiwai i loko o nā ʻōlelo ʻē aʻe, no ka laʻana, e pale i nā kelepona hana pālua i nā ʻōlelo kūlana a i ka wehewehe ʻana i nā puka lou:

    inā (n := len(a)) > 10:
    ...

    while (block := f.read(256)) !=":
    ...

  • kākoʻo syntax hou no ka ho'ākāka 'ana i nā manaʻo manaʻo. Ke helu ʻana i nā hoʻopaʻapaʻa i ka wā o kahi wehewehe hana, hiki iā ʻoe ke kuhikuhi i kahi "/" e hoʻokaʻawale i nā hoʻopaʻapaʻa i hiki ke hāʻawi ʻia i nā waiwai wale nō e pili ana i ke ʻano o ka helu ʻana o nā waiwai i ka wā o ke kāhea hana, mai nā hoʻopaʻapaʻa hiki ke hāʻawi ʻia. ma kekahi kauoha (variable=value syntax) ). Ma ka ʻaoʻao kūpono, hiki i ka hiʻohiʻona hou ke hana i ka Python e hoʻohālikelike piha i ka ʻano o nā hana i kēia manawa ma C, a e pale pū hoʻi i ka hoʻopaʻa ʻana i nā inoa kikoʻī, no ka laʻana, inā i hoʻolālā ʻia ka inoa parameter e hoʻololi i ka wā e hiki mai ana.

    Hoʻopiha ka hae "/" i ka hae "*" i hoʻohui ʻia ma mua, e hoʻokaʻawale ana i nā ʻano hoʻololi e pili ana i kahi hana ma ke ʻano "variable=value". No ka laʻana, i ka hana "def f(a, b, /, c, d, *, e, f):" hiki ke hoʻonohonoho ʻia nā ʻano "a" a me "b" i ka papa inoa o nā waiwai. ,
    nā mea hoʻololi "e" a me "f", ma o ka hana "variable=value", a me nā mea hoʻololi "c" a me "d" ma kekahi o kēia mau ʻano:

    f(10, 20, 30, 40, e=50, f=60)
    f(10, 20, s=30, d=40, e=50, f=60)

  • Hoʻohui ʻia API hou C
    e hoʻonohonoho i nā ʻāpana hoʻomaka Python, e ʻae i ka mana piha ma luna o nā mea āpau hoʻonohonoho a me ka hoʻolako ʻana i nā ʻoihana hoʻoponopono hewa. ʻO ka API i manaʻo ʻia e maʻalahi ke hoʻokomo i ka hana unuhi ʻōlelo Python i nā noi C ʻē aʻe;

  • Hoʻokō ʻia ka protocol Vectorcall hou no ke komo wikiwiki ʻana i nā mea i kākau ʻia ma ka ʻōlelo C. Ma CPython 3.8, ua kaupalena ʻia ke komo ʻana iā Vectorcall i ka hoʻohana kūloko; hoʻololi ʻia i ka māhele o nā API hiki i ka lehulehu ke hoʻolālā ʻia ma CPython 3.9;
  • Hoʻohui ʻia kelepona iā Runtime Audit Hooks, e hāʻawi ana i nā noi a me nā frameworks ma Python me ka ʻike haʻahaʻa haʻahaʻa e pili ana i ka holomua o ka palapala e loiloi i nā hana i hana ʻia (no ka laʻana, hiki iā ʻoe ke hahai i ka lawe ʻana mai o nā modules, wehe i nā faila, me ka hoʻohana ʻana i kahi trace, ke kiʻi ʻana i nā kumu pūnaewele, holo code ma o exec, eval a me run_mod);
  • Ma ka module ʻākiki hāʻawi ʻia kākoʻo no ka protocol Pickle 5, hoʻohana ʻia no ka serializing a me ka deserializing mea. Hāʻawi ʻo Pickle iā ʻoe e hoʻololi i ka hoʻololi ʻana o ka nui o ka ʻikepili ma waena o nā kaʻina Python i nā hoʻonohonoho multi-core a me multi-node ma o ka hōʻemi ʻana i ka helu o nā hana kope hoʻomanaʻo a me ka hoʻohana ʻana i nā ʻenehana loiloi hou e like me ka hoʻohana ʻana i nā algorithms compression kikoʻī data. ʻO ka ʻelima o ka mana o ka protocol he mea kaulana ia no ka hoʻohui ʻana i kahi ʻano hoʻoili waho-o-band, kahi e hiki ai ke hoʻoili ʻia ka ʻikepili mai ke kahawai pickle nui.
  • ʻO ka mea maʻamau, ua hoʻāla ʻia ka ʻehā o ka protocol Pickle, i hoʻohālikelike ʻia me ke kolu o ka mana i hāʻawi mua ʻia e ka paʻamau, hiki i ka hana kiʻekiʻe a me ka hōʻemi ʻana i ka nui o ka ʻikepili i hoʻouna ʻia;
  • Ma ka module kaomi Hoʻokomo ʻia kekahi mau hiʻohiʻona hou:
    • Papa TypedDict no nā pūʻulu hui e wehewehe pono ʻia ka ʻike no ka ʻikepili pili me nā kī (“TypedDict('Point2D', x=int, y=int, label=str)”).
    • ʻAno Palapala, hiki iā ʻoe ke kaupalena i kahi ʻāpana a hoʻihoʻi i ka waiwai i kekahi mau waiwai i koho mua ʻia ("Literal ['connected', 'disconnected']").
    • Hoʻolālā "hope loa", ka mea e hiki ai ke wehewehe i nā waiwai o nā mea hoʻololi, nā hana, nā ʻano a me nā papa i hiki ʻole ke hoʻololi a hoʻihoʻi hou ʻia ("pi: Final [float] = 3.1415926536").
  • Hoʻohui i ka hiki ke hāʻawi i kahi huna no nā faila i hui pū ʻia me ka bytecode, mālama ʻia i kahi lāʻau FS ʻokoʻa a hoʻokaʻawale ʻia mai nā papa kuhikuhi me ke code. Hoʻonohonoho ʻia ke ala no ka mālama ʻana i nā faila me ka bytecode ma o kahi loli PYTHONPYCACHEPREFIX a i ʻole ke koho "-X pycache_prefix";
  • Hoʻokō ʻia ka hiki ke hana i nā hale debug o Python e hoʻohana ana i kahi ABI e like me ka hoʻokuʻu ʻana, e hiki ai iā ʻoe ke hoʻouka i nā hoʻonui i kākau ʻia ma ka ʻōlelo SI, i hōʻuluʻulu ʻia no nā hoʻokuʻu paʻa, i nā hale debug;
  • ʻO nā f-strings (nā huaʻōlelo i hoʻopaʻa mua ʻia me ka 'f') hāʻawi i ke kākoʻo no ka = operator (no ka laʻana, "f'{expr=}'"), hiki iā ʻoe ke hoʻololi i kahi ʻōlelo i kikokikona no ka maʻalahi o ka debugging. ʻo kahi laʻana:

    ››› mea hoʻohana = 'eric_idle'
    ››› lālā_mai = lā(1975, 7, 31)
    ››› f'{mea hoʻohana=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • 'Ōlelo "hoʻomau» ʻae ʻia e hoʻohana i loko o kahi poloka hope;
  • Hoʻohui ʻia ka module hou multiprocessing.shared_memory, e ʻae ana i ka hoʻohana ʻana i nā ʻāpana hoʻomanaʻo like i nā hoʻonohonoho multiprocess;
  • Ma ka papahana Windows, ua hoʻoneʻe ʻia ka hoʻokō asyncio e hoʻohana i ka papa ProactorEventLoop;
  • Ua hoʻonui ʻia ka hana o ke aʻo ʻana LOAD_GLOBAL ma kahi o 40% ma muli o ka hoʻohana ʻana i kahi mīkini hoʻopaʻa helu mea hou.

Source: opennet.ru

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