sudofeed

dev · · 21:20 · 1 min de citit

Previzualizare Python 3.15: Introducerea frozendict

Python 3.15 va introduce `frozendict`, un tip de mapare imuabilă încorporat, rezolvând o asimetrie de lungă durată cu alte structuri de date Python. Acest nou tip oferă siguranță și hashability, permițând dicționarelor să fie utilizate ca chei, membri de set sau argumente de cache.

Python 3.15 introduce `frozendict` ca un tip de mapare imuabilă încorporat, oferind în sfârșit un echivalent pentru dicționarele mutabile, care oglindește imuabilitatea oferită de tupluri și frozensets. Această nouă funcționalitate, provenită din PEP 814, abordează o călătorie de paisprezece ani a propunerilor și vizează îmbunătățirea siguranței prin prevenirea mutațiilor accidentale și activarea hashability, esențială pentru utilizarea mapărilor ca chei de dicționar, elemente de set sau în scenarii de programare concurentă.

Tipul `frozendict`, deși nu moștenește de la `dict`, oferă o imuabilitate superficială (shallow), ceea ce înseamnă că structurile mutabile imbricate, cum ar fi listele, rămân mutabile. Este hashable doar dacă toate cheile și valorile sale sunt, de asemenea, hashable și nu suportă metode de mutație. Dezvoltarea `frozendict` a fost influențată de nevoia crescândă de siguranță în concurență în aplicațiile Python multi-threaded, un factor care a dus în cele din urmă la includerea sa, după ce propunerile anterioare au fost respinse sau blocate.

Această adăugare închide un decalaj semnificativ în biblioteca standard Python, oferind dezvoltatorilor o modalitate fiabilă de a gestiona structuri de date imuabile. În timp ce `types.MappingProxyType` oferea o vizualizare doar în citire, `frozendict` oferă imuabilitate și hashability reale. Implicațiile includ partajarea mai sigură a datelor între fire de execuție, mecanisme de caching mai eficiente și o abordare mai curată pentru reprezentarea configurațiilor constante în cadrul aplicațiilor.

$ sursa --originală

realpython.com

Rezumat realizat de Sudofeed pe baza articolului original. Drepturile asupra conținutului aparțin sursei originale.

citește originalul ↗