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

Mgbe otu afọ na ọkara nke mmepe ọkọnọ isi ntọhapụ asụsụ mmemme Python 3.8. Mmelite mmezi maka ngalaba Python 3.8 zubere ntọhapụ n'ime ọnwa 18. A ga-edozi adịghị ike dị egwu maka afọ 5 ruo Ọktoba 2024. A ga-ewepụta mmelite mmezi maka ngalaba 3.8 kwa ọnwa abụọ, yana ntọhapụ izizi Python 3.8.1 nke edobere maka Disemba.

N'ime ndị agbakwunyere ihe ọhụrụ:

  • support ọrụ ọrụ n'ime okwu mgbagwoju anya. Site na onye ọrụ ọhụrụ ": =", ọ ga-ekwe omume ịrụ ọrụ ọrụ bara uru n'ime okwu ndị ọzọ, dịka ọmụmaatụ, iji zere oku ọrụ ugboro abụọ na nkwupụta ọnọdụ yana mgbe a na-akọwa loops:

    ọ bụrụ (n := len(a)) > 10:
    ...

    mgbe (mgbochi:= f.agụ(256)) !=":
    ...

  • support syntax ọhụrụ maka ịkọwa arụmụka ọrụ. Mgbe ị na-agụta arụmụka n'oge nkọwa ọrụ, ị nwere ike ugbu a ịkọwapụta "/" iji kewaa arụmụka nke nwere ike inye naanị ụkpụrụ dabere na usoro a na-edepụta ụkpụrụ n'oge oku ọrụ, site na arụmụka ndị nwere ike kenye. n'usoro ọ bụla (mgbanwe = uru syntax) ). N'akụkụ bara uru, ihe ọhụrụ ahụ na-enye ohere ọrụ na Python ka o ṅomie omume nke ọrụ ndị dị na C kpamkpam, nakwa iji zere ijikọta aha ụfọdụ, dịka ọmụmaatụ, ma ọ bụrụ na aha parameter na-eme atụmatụ ịgbanwe n'ọdịnihu.

    Ọkọlọtọ “/” ahụ na-akwado ọkọlọtọ “*” agbakwunyere na mbụ, na-ekewapụta mgbanwe nke naanị ọrụ dị n'ụdị “variable=uru” dị. Dịka ọmụmaatụ, na ọrụ "def f (a, b, /, c, d, *, e, f):" mgbanwe "a" na "b" nwere ike ịkenye naanị n'usoro e depụtara ụkpụrụ ndị ahụ. ,
    mgbanwe "e" na "f", naanị site na ọrụ "variable= value", na mgbanwe "c" na "d" n'ụzọ ọ bụla:

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

  • agbakwunyere API ọhụrụ C
    iji hazie usoro mmalite Python, na-enye ohere ịchịkwa ihe niile nhazi na inye ụlọ ọrụ njikwa njehie dị elu. API a tụrụ aro na-eme ka ọ dị mfe itinye ọrụ ntụgharị Python n'ime ngwa C ndị ọzọ;

  • Emere ya ọhụrụ Vectorcall protocol maka ịnweta ngwa ngwa nke ihe edere n'asụsụ C. Na CPython 3.8, ịnweta Vectorcall ka bụ naanị iji n'ime ime; nyefee na udi nke API ndị a na-enweta n'ihu ọha ka akwadoro na CPython 3.9;
  • agbakwunyere oku na-aga na Runtime Audit Hooks, nke na-enye ngwa na frameworks na Python ohere ịnweta ozi dị ala banyere ọganihu nke edemede iji nyochaa omume ndị a rụrụ (dịka ọmụmaatụ, ị nwere ike soro mbubata modul, imeghe faịlụ, iji akara, ịnweta oghere netwọk, na-agba ọsọ koodu site na exec, eval na run_mod);
  • Na modul pịkụl enyere nkwado maka usoro Pickle 5, ejiri maka serialiserial na deserialize ihe. Pickle na-enye gị ohere ịkwalite mbufe data buru ibu n'etiti usoro Python na nhazi multi-core na multi-node site na ibelata ọnụ ọgụgụ nke ọrụ oyiri ebe nchekwa yana itinye usoro nkwalite ndị ọzọ dị ka iji data mkpakọ algorithms. Ụdị nke ise nke protocol bụ ihe ama ama maka mgbakwunye nke ụdị nnyefe na-apụ apụ, nke enwere ike ibunye data iche iche na iyi mmiri pickle.
  • Site na ndabara, a na-eme ka ụdị nke anọ nke usoro Pickle rụọ ọrụ, nke, ma e jiri ya tụnyere ụdị nke atọ a na-enyebu site na ndabara, na-enye ohere ịrụ ọrụ dị elu na mbelata nha data ebufe;
  • Na modul dee Ewebata ọtụtụ atụmatụ ọhụrụ:
    • Класс TypedDict maka usoro ihe jikọrọ ụdị ozi akọwapụtara nke ọma maka data metụtara igodo ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Ụdị Agụ, nke na-enye gị ohere ịmachi oke ma ọ bụ weghachi uru na ụkpụrụ ole na ole eburu ụzọ kọwaa (“Literal['connected', 'disconnected']”).
    • ihe owuwu "Final", nke na-eme ka o kwe omume ịkọwa ụkpụrụ nke mgbanwe, ọrụ, ụzọ na klaasị na-enweghị ike ịgbanwe ma ọ bụ nyegharịa ya ("pi: Final[float] = 3.1415926536").
  • Agbakwunyere ike ị kenye cache maka faịlụ agbakọtara na bytecode, echekwara na osisi FS dị iche wee kewapụ ya na akwụkwọ ndekọ aha nwere koodu ahụ. A na-edozi ụzọ maka ịchekwa faịlụ na bytecode site na mgbanwe PYTHONPYCACHEPREFIX ma ọ bụ nhọrọ "-X pycache_prefix";
  • Emere ya ike ịmepụta debug na-ewuli Python nke na-eji ABI yiri ntọhapụ, nke na-enye gị ohere ibu ihe ndọtị e dere n'asụsụ SI, chịkọtara maka ntọhapụ kwụsiri ike, na-ewuli ihe ndozi;
  • f-strings (nke ahaziri nke ọma na 'f') na-enye nkwado maka onye ọrụ = (dịka ọmụmaatụ, "f'{expr=}"), nke na-enye gị ohere ịgbanwe okwu gaa na ederede ka ọ dị mfe nbibi. Ọmụmaatụ:

    ›› onye ọrụ = 'eric_idle'
    ›› otu_ kemgbe = ụbọchị (1975, 7, 31)
    ›› f'{onye ọrụ=} {otu_since=}'
    "onye ọrụ='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Nkwupụta "anọgide» ekwe ka eji ya mee ihe n'ime ngọngọ n'ikpeazụ;
  • agbakwunyere modul ọhụrụ multiprocessing.shared_memory, na-ekwe ka ojiji nke òkè ebe nchekwa akụkụ na multiprocess nhazi;
  • N'elu ikpo okwu Windows, a kpalila mmejuputa asyncio iji klaasị ProactorEventLoop;
  • Arụmọrụ ntụziaka LOAD_GLOBAL amụbaala ihe dị ka 40% n'ihi iji usoro nchekwa koodu ọhụrụ ihe.

isi: opennet.ru

Tinye a comment