Ce poate face `match`/`case` și un lanț de `if`/`elif` nu poate în Python
Potrivirea structurală de tipare din Python, explicată: ce fac match și case și un lanț if/elif nu poate, adică testarea formei unei valori și destructurarea ei într-un singur pas. Acoperă cele cinci feluri de tipare — literal, de capturare, de secvență, de mapare și de clasă — de ce tiparele de secvență nu se potrivesc niciodată cu str sau bytes, de ce tiparele de mapare se potrivesc cu o submulțime de chei, cum combină tiparele de clasă o verificare isinstance cu potrivirea de atribute și cum match_args de la o dataclass permite subtipare poziționale. Explică gărzile evaluate după legare, ordinea cazurilor în care prima potrivire câștigă și regula capturare-față-de-valoare, care face un nume simplu să se potrivească cu orice și să relege constanta pe care voiai să o compari, cu un membru de enumerare cu punct drept corectură. Include cod rulabil și ieșire reală pentru dispecerizarea tuplurilor de evenimente, potrivirea evenimentelor dataclass cu gărzi și capcana capturării tăcute.
Комментарии