Aflați despre caracteristicile interesante din Python 3.12 care vă vor ușura viața de dezvoltator.
Python intenționează să lanseze versiunea 3.12 a limbii în octombrie 2023. Această versiune aduce o serie de caracteristici și îmbunătățiri palpitante. Scopul său este de a vă îmbunătăți experiența de codare, oferind o platformă mai eficientă și mai puternică, permițându-vă să vă îmbunătățiți abilitățile de codare.
1. Mesaje de eroare îmbunătățite
Python și-a îmbunătățit continuu mesajele de eroare în versiunile recente. The Versiunea 3.11 a introdus mesaje de eroare mai precise prin indicarea pozițiilor exacte în cadrul liniilor.
Python 3.12 duce aceste îmbunătățiri la nivelul următor, cu următoarele completări:
- Sugestiile pentru modulele lipsă („ai uitat să importați X?”) cuprind acum module din biblioteca standard.
- Sugestii de erori îmbunătățite pentru erorile de sintaxă comune legate de importuri. De exemplu, dacă ai import p din m în codul dvs., o eroare vă va cere dacă intenționați să scrieți din m import p.
- Erorile de import pentru un anumit modul includ acum sugestii din spațiul de nume al modulului importat.
- NameErrore sugestiile includ acum și ele de sine adăugat la nume atunci când este ridicat într-o instanță de clasă. De exemplu, dacă numele viteză nu este definit, mesajul de eroare va fi propus auto.viteza ca o potenţială corecţie. Acest lucru este deosebit de util deoarece omiteți de sine de exemplu, variabilele sunt o sursă comună de erori în instanțe de clasă.
2. Suport pentru Linux Perf Profiler
Instrumentul de profilare Linux utilizat pe scară largă, perf, poate lucra acum cu programe Python 3.12. În trecut, se concentra doar pe urmărirea operațiunilor la nivel C în timpul de execuție Python.
Cu Python 3.12, acum puteți activa perf pentru a colecta detalii și despre programele Python. Îl puteți activa fie la nivel de mediu, fie într-un program Python folosind sys.activate_stack_trambuline funcţie.
3. Îmbunătățiri pentru indicații de tip
De la introducerea sa în Python 3.5, sintaxa de indicare a tipurilor a lui Python a permis instrumentelor de lining să detecteze o gamă largă de erori în avans. Cu fiecare lansare ulterioară, sistemul de tip Python a evoluat pentru a cuprinde o gamă mai largă de cazuri de utilizare, oferind funcții de tastare îmbunătățite.
TypedDict
Python 3.12 introduce utilizarea TypedDicts ca sursă pentru indicarea argumentelor cuvintelor cheie în funcții. Acesta utilizează genericul Unpack variadic, introdus de versiunea 3.11.
Iată un exemplu care ilustrează această caracteristică:
clasăFilm(TypedDict):
nume: str
anul: int
deffoo(**kwargs: Despachetează[Filmul]) -> Nici unul: ...
În acest caz, funcția foo poate primi argumente de cuvinte cheie cu nume și tipuri care se aliniază cu conținutul filmului TypedDict: Nume de tip str și an de tip int.
Această îmbunătățire se dovedește valoroasă atunci când funcțiile de indicare a tipurilor care acceptă argumente opționale numai cu cuvinte cheie fără valori implicite.
Tip Sintaxa parametrului
Python 3.12 introduce o sintaxă mai concisă pentru specificarea tipurilor în clase generice, funcții sau aliasuri de tip.
Luați în considerare următoarele:
# metoda veche
din tastare import TypeVar
_T = TypeVar(„_T”)
deffunc(a: _T, b: _T) -> _T:
...
# metoda parametrului de tip nou
deffunc[T](a: T, b: T) -> T:
...
Cu noua sintaxă, nu este nevoie să importați în mod explicit TypeVar. În schimb, puteți utiliza func[T] sintaxă pentru a indica referințe de tip generic. De asemenea, este posibil să se definească limite de tip, cum ar fi specificarea că un tip trebuie să fie unul dintr-un grup de tipuri. Cu toate acestea, aceste tipuri în sine nu pot fi generice. Un exemplu al acestei sintaxe este func[T: (str, int)].
4. Colectarea gunoiului
În Python 3.12, mecanism de colectare a gunoiului (GC). s-a schimbat. Anterior, GC rula ori de câte ori era alocat un obiect.
Cu toate acestea, începând cu Python 3.12, GC operează exclusiv în cadrul eval breaker mecanism în bucla de bytecode Python. Cu alte cuvinte, rulează între execuția unui bytecode și următorul.
În plus, GC se declanșează și atunci când este invocat mecanismul de verificare a manipulatorului de semnal al CPython. Această ajustare permite colectarea periodică a gunoiului în timpul apelurilor de lungă durată către extensiile C în afara timpului de execuție.
Dezvăluirea Python 3.12
Python 3.12 introduce o serie de funcții și îmbunătățiri interesante, revoluționând experiența de codare pentru tine. Cu mesaje de eroare îmbunătățite, capacități de tastare îmbunătățite, suport pentru Linux Perf Profiler și colectare optimizată a gunoiului, Python 3.12 vă echipează cu instrumente pentru a scrie cod de înaltă calitate eficient. Îmbrățișați puterea Python și ridicați-vă abilitățile de codare la noi culmi.