Saznajte više o uzbudljivim značajkama u Pythonu 3.12 koje će vam olakšati život programera.

Python planira objaviti verziju 3.12 jezika u listopadu 2023. Ova verzija donosi niz uzbudljivih značajki i poboljšanja. Njegov cilj je poboljšati vaše iskustvo kodiranja nudeći učinkovitiju i moćniju platformu, omogućujući vam da unaprijedite svoje vještine kodiranja.

1. Poboljšane poruke o pogreškama

Python je neprestano poboljšavao svoje poruke o pogreškama u posljednjim verzijama. The Izdanje 3.11 uvelo je preciznije poruke o pogreškama navođenjem točnih pozicija unutar redaka.

Python 3.12 podiže ova poboljšanja na višu razinu sa sljedećim dodacima:

  • Prijedlozi za module koji nedostaju ("jesi li zaboravio uvesti X?") sada obuhvaćaju module iz standardne biblioteke.
  • Poboljšani prijedlozi pogrešaka za uobičajene sintaktičke pogreške povezane s uvozom. Na primjer, ako imate uvoz p iz m u vašem kodu, pojavit će se poruka o pogrešci koja vas pita jeste li namjeravali pisati iz m uvoza str.
  • Pogreške pri uvozu za određeni modul sada uključuju prijedloge iz prostora imena uvezenog modula.
  • instagram viewer
  • NameError prijedlozi sada također uključuju sebe dodaje se imenu kada se podiže unutar instance klase. Na primjer, ako ime ubrzati nije definiran, poruka o pogrešci će predložiti sam.brzina kao potencijalnu korekciju. Ovo je osobito korisno od izostavljanja sebe na primjer varijable su čest izvor pogrešaka u instancama klase.

2. Podrška za Linux Perf Profiler

Široko korišten Linux alat za profiliranje, izvedba, sada može raditi s Python 3.12 programima. U prošlosti se fokusirao samo na praćenje operacija na C razini unutar Python runtimea.

Uz Python 3.12 sada možete aktivirati perf za prikupljanje pojedinosti o Python programima. Možete ga aktivirati na razini okruženja ili unutar Python programa koristeći sys.activate_stack_trampolin funkcija.

3. Poboljšanja nagovještaja tipa

Od uvođenja u Python 3.5, Pythonova sintaksa nagovještaja tipa omogućila je alatima za linting da unaprijed otkriju široku lepezu pogrešaka. Sa svakim sljedećim izdanjem, Pythonov sustav tipova evoluirao je kako bi obuhvatio širi raspon slučajeva upotrebe, nudeći poboljšane značajke tipkanja.

TypedDict

Python 3.12 predstavlja korištenje TypedDicts kao izvor za nagovještavanje argumenata ključne riječi u funkcijama. Ovo koristi Unpack variadic generic, koji je predstavljen u verziji 3.11.

Evo primjera koji ilustrira ovu značajku:

razredaFilm(TypedDict):
naziv: str
godina: međ

deffuj(**kwargs: Raspakiraj[Film]) -> Nijedan: ...

U ovom slučaju funkcija fuj može primiti argumente ključnih riječi s imenima i tipovima koji su usklađeni sa sadržajem Movie TypedDict-a: Ime tipa str i godina tipa int.

Ovo se poboljšanje pokazalo vrijednim kod funkcija nagovještaja tipa koje prihvaćaju neobavezne argumente samo za ključne riječi bez zadanih vrijednosti.

Sintaksa parametra tipa

Python 3.12 uvodi sažetiju sintaksu za određivanje tipova u generičkim klasama, funkcijama ili aliasima tipa.

Razmotrite sljedeće:

# stara metoda
iz tipkanje uvoz TypeVar
_T = TypeVar("_T")
deffunk(a: _T, b: _T) -> _T:
...
# nova metoda parametra tipa
deffunk[T](a: T, b: T) -> T:
...

Uz novu sintaksu, nema potrebe za eksplicitnim uvozom TypeVar. Umjesto toga, možete koristiti funkcija[T] sintaksa za označavanje referenci generičkog tipa. Također je moguće definirati granice tipa, kao što je specificiranje da tip mora biti jedan iz grupe tipova. Međutim, ove vrste same po sebi ne mogu biti generičke. Primjer ove sintakse je func[T: (str, int)].

4. Kolekcija smeća

U Pythonu 3.12, mehanizam za sakupljanje smeća (GC). promijenio. Prethodno se GC pokretao kad god je objekt bio dodijeljen.

Međutim, počevši od Pythona 3.12, GC radi isključivo unutar eval breaker mehanizam u Python petlji bajtkoda. Drugim riječima, radi između izvršenja jednog bajtkoda i sljedećeg.

Osim toga, GC se također pokreće kada se pozove CPythonov mehanizam provjere rukovatelja signalima. Ova prilagodba omogućuje periodično sakupljanje smeća tijekom dugotrajnih poziva C ekstenzijama izvan vremena izvođenja.

Otkrivanje Pythona 3.12

Python 3.12 predstavlja niz uzbudljivih značajki i poboljšanja, revolucionirajući iskustvo kodiranja za vas. S poboljšanim porukama o pogreškama, poboljšanim mogućnostima tipkanja, podrškom za Linux Perf Profiler i optimizirano sakupljanje smeća, Python 3.12 vam daje alate za pisanje visokokvalitetnog koda efikasno. Prihvatite snagu Pythona i podignite svoje vještine kodiranja na nove visine.