Guida del Data Scientist alla tipizzazione in Python migliorare la chiarezza del codice

Guida alla tipizzazione in Python per Data Scientist

L’importanza del typing e come può essere utilizzata in Python

Foto di Pankaj Patel su Unsplash

Cosa è il ‘Typing’?

Con typing non ci riferiamo a toccare fisicamente la tastiera, ma piuttosto ai tipi di dati che le nostre variabili (e funzioni) assumono nel nostro codice Python!

Python di per sé è un linguaggio dinamico, il che significa che non c’è alcun requisito formale per dichiarare il tipo di dati che le nostre variabili assumono. Ad esempio, una variabile può iniziare come un intero ma cambiare in una stringa in un altro punto del codice. Questa flessibilità può spesso portare a errori durante l’esecuzione che possono essere difficili da debuggare.

Altri linguaggi sono staticamente tipizzati, il che significa che i tipi di variabili devono essere dichiarati esplicitamente e non possono cambiare durante l’esecuzione. Se una variabile è dichiarata come un intero, deve rimanere un intero per tutta l’esecuzione del programma. Esempi di linguaggi staticamente tipizzati sono Fortran e C++.

Tuttavia, negli ultimi anni Python ha sviluppato il supporto per il typing ed è diventato uno standard a livello industriale. Questo è particolarmente vero per i Data Scientist che devono distribuire modelli di machine-learning robusti in produzione.

In questo post, voglio guidarti attraverso la sintassi di base e i processi dietro il typing in Python e come utilizzare il pacchetto mypy, che ci consente di verificare il tipo di codice in modo trasparente.

Il typing è effettivamente raccomandato come mostrato dal PEP 484.

Esempio di base

Attraversiamo un esempio semplice per spiegare la necessità del controllo dei tipi in Python. Qui abbiamo una funzione che somma due numeri chiamata, in modo geniale, adding_two_numbers:

Qual è l’output dei due statement print? Beh, il primo è:

print(adding_two_numbers(5, 5))>>> 10

Questo è atteso. Tuttavia, l’output del secondo statement print è:

print(adding_two_numbers("5", "5"))…