Skip to Content
Python robusto
book

Python robusto

by Patrick Viafore
April 2025
Intermediate to advanced
380 pages
10h 23m
Italian
O'Reilly Media, Inc.
Book available
Content preview from Python robusto

Capitolo 13. I protocolli

Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com

Devo fare una confessione. Ho aggirato un aspetto del sistema di tipi di Python che, a prima vista, è contraddittorio. Ha a che fare con una differenza chiave di filosofia tra il sistema di tipi runtime di Python e i suggerimenti di tipo statico.

Nel Capitolo 2 ho descritto come Python supporta la tipizzazione delle anatre. Ricordiamo che questo significa che puoi usare gli oggetti in un contesto a patto che quell'oggetto supporti una serie di comportamenti specifici. Non è necessario avere una classe madre o una struttura di ereditarietà predefinita per utilizzare la tipizzazione dell'anatra.

Tuttavia, il typechecker non ha la minima idea di come gestire la tipizzazione di un'anatra senza alcuna assistenza. Il typechecker sa come gestire i tipi conosciuti al momento dell'analisi statica, ma come fa a gestire le decisioni relative alla tipizzazione di anatre prese in runtime?

Per rimediare a questo inconveniente, introdurrò i protocolli, una funzione introdotta in Python 3.8. I protocolli risolvono le contraddizioni sopra elencate: annotano le variabili con tipizzazione a vuoto durante il typechecking. Ti spiegherò perché hai bisogno dei protocolli, come definire i tuoi e come utilizzarli in scenari avanzati. Prima di iniziare, però, devi capire la differenza tra la tipizzazione di Python e i typechecker statici. ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Practical Neural Network Recipies in C++

Practical Neural Network Recipies in C++

Masters

Publisher Resources

ISBN: 9798341645462Supplemental Content