Dumating ang bagong stable na bersyon ng Python 3.12 at ito ang mga bagong feature nito

Logo ng sawa

Ang Python ay isang mataas na antas ng programming language.

Pagkatapos ng isang taon ng pag-unlad, Ang paglabas ng matatag na bersyon ay inihayag at din ang simula ng alpha testing phase ng programming language Python 3.12 at Python 3.13 (ayon sa pagkakabanggit). Nabanggit na ang bagong sangay na ito ng Python 3.12 ay susuportahan sa loob ng isang taon at kalahati, pagkatapos nito, para sa isa pang tatlo at kalahating taon, ang mga pag-aayos ay bubuo upang maalis ang mga kahinaan.

Ang bagong bersyon ng Python 3.12 na ipinakita ay may mga pagpapabuti sa flexibility ng f-string analysis. Sa pagpapabuti na ito ngayon maraming mga paghihigpit ang maaaring iwanan, dahil halimbawa ay maaari ka na ngayong maglaman ng anumang wastong expression sa Python, kabilang ang mga multiline na expression, komento, backslashes, at Unicode escape sequence. Bukod pa rito, pinapayagan na ngayon ng mga panloob na string ang muling paggamit ng parehong mga quote ibig sabihin, ang mga double quote ay maaari na ngayong muling gamitin sa loob nang hindi na kailangang baguhin sa iisang quotes.

Halimbawa:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Posible na ngayong mag-nest nang arbitraryo:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Ang isa pang pagbabago na namumukod-tangi ay ang suporta para sa mga nakahiwalay na subinterpreter at hiwalay na mga global lock, na nilayon upang pataasin ang kahusayan ng paggamit ng mapagkukunan sa mga multicore system, dahil para sa iba't ibang interpreter sa loob ng isang proseso, pinapayagan ng CPython ang ilang interpreter na tumakbo nang sabay sa isang proseso. Sa kasalukuyan, ang tampok ay kasalukuyang magagamit lamang sa pamamagitan ng C-API (Ang suporta ng Python API ay lilitaw sa susunod na pangunahing sangay).

Bilang karagdagan dito, naka-highlight din iyonAng impormasyong nilalaman ng mga mensahe ng error ay nadagdagan at ang hanay ng mga pagbubukod ay pinalawak, nag-aalok ng mga rekomendasyon upang maalis ang mga typographical error. Halimbawa, ipinapakita na ngayon ang mga mungkahi para sa pag-import ng mga nakalimutang standard na module ng library at mga mungkahi para sa pag-prefix ng "sarili".

Nagdagdag ng kakayahang gamitin ang buffer protocol sa Python code. Ang mga klase na nagbibigay ng "__buffer__()" na paraan ay maaari na ngayong gamitin bilang mga uri na direktang gumagana sa binary data sa memorya.

Ang modyul Ang sys.monitoring ay iminungkahi para sa pag-debug at pag-profile, nagbibigay-daan sa iyong subaybayan ang mga kaganapan sa CPython tulad ng mga tawag, pagbabalik ng function, pagpapatupad ng mga arbitrary na linya ng code, mga pagbubukod at mga transition na may kaunting overhead.

Ang interpreter ay nagpapatupad ng suporta para sa Linux kernel performance subsystem, na nagpapahintulot sa mga pangalan ng function ng Python na matukoy kapag nag-profile gamit ang utility ng pagganap (dati, ang mga pangalan ng function ng C lamang ang tinutukoy sa mga bakas).

Tungkol sa mga pagpapabuti ng pagganap, nabanggit na nagpatuloy ang pag-optimize, kung saan Ang kabuuang pakinabang sa pagganap na tinatayang nasa 5% ay nakuha., idinagdag din ito pang-eksperimentong suporta para sa BOLT binary optimizer sa proseso ng pagbuo, pagtaas ng pagganap ng 1-5%, habang ang pagganap ng asyncio package ay bumuti nang malaki (ang ilang mga pagsubok ay nagpapakita ng 75% na bilis).

Naipatupad ang inline na pagpapalawak ng mga pag-unawa sa listahan, na nagpapabilis sa pagtatrabaho sa mga pag-unawa sa listahan ng hanggang dalawang beses (para sa code na aktibong gumagamit ng mga pag-unawa sa listahan, ang pagsubok ay nagpakita ng pangkalahatang pagtaas ng pagganap na 11%).

Upang mapabuti ang seguridad, built-in na pagpapatupad ng Ang mga algorithm ng SHA1, SHA3, SHA2-384, SHA2-512 at MD5 sa hashlib ay pinalitan na may pormal na na-verify na mga opsyon mula sa proyekto ng HACL* (ginagamit lang ang mga built-in na pagpapatupad kung hindi available ang OpenSSL).

Ng iba pang mga pagbabago matindi yan:

  • Pinalawak ng module ang suporta para sa Windows.
  • Ipinapatupad ng Python ang proteksyon ng stack overflow.
    Ang paglikha ng asyncio.Task class ay pinabilis.
  • Ang laki ng mga bagay na Unicode ay nabawasan ng 8 hanggang 16 na byte.
  • Ang mga operasyong may mga regular na expression na re.sub(), re.subn() at re.Pattern ay pinabilis.
  • Ang pagpapatakbo ng isinstance() na mga pagsusuri para sa ilang protocol ay pinabilis ng 2 hanggang 20 beses.
  • Kapansin-pansing (sa ilang mga pagsubok hanggang 64%) ang tokenize.tokenize() at tokenize.generate_tokens() function ay napabilis.
  • Ang pag-load ng attribute at pagtawag sa super() na paraan ay pinabilis.
  • Ang isang bago, mas compact na uri ng annotation syntax ay iminungkahi para sa mga generic na klase at function.
  • Hindi na sinusuportahan ng module ng web browser ang mga mas lumang browser kabilang ang Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird, at Firefox hanggang sa bersyon 36.
  • Bilang paghahanda para sa mga pag-optimize sa hinaharap, ang panloob na representasyon ng mga integer ay binago.

Huling ngunit hindi bababa sa, tulad ng nabanggit, ang pagsubok ng alpha ng Python 3.13 ay nagsimula, kung saan lumitaw ang isang compilation mode CPython na walang pandaigdigang lock ng interpreter (GIL, Global Interpreter Lock).

Ang sangay Ang Python 3.13 ay nasa alpha sa loob ng pitong buwan, kung saan magdaragdag ng mga bagong feature at maaayos ang mga bug ayon sa bagong iskedyul ng pag-develop, magsisimula ang trabaho sa isang bagong sangay limang buwan bago ang paglabas ng nakaraang sangay at sa oras na ang susunod na bersyon ay umabot sa yugto ng pagsubok na alpha.

Pagkatapos nito, susuriin ang mga beta na bersyon sa loob ng tatlong buwan, kung saan ang pagdaragdag ng mga bagong feature ay ipagbabawal at lahat ng atensyon ay babayaran sa pag-aayos ng mga bug. Sa huling dalawang buwan bago i-release, ang branch ay nasa yugto ng release candidate, kung saan magaganap ang panghuling stabilization.

Panghuli oo interesado kang malaman ang higit pa tungkol dito, maaari mong suriin ang mga detalye sa sumusunod na link.