Creare un modulo Python

Vediamo in questo articolo, in modo semplice, come creare un proprio modulo Python. Si, perchè oltre ai moduli Python che abbiamo già visto in un precedente articolo, e che sono quelli integrati con l’installazione Python, possiamo anche importare moduli di altri programmatori e quindi anche creare i nostri.

Vi ricordo anche che per quanto riguarda i moduli Python compresi con l’installazione, c’è questa pagina che vi accompagna in alcuni esempi (in inglese) sul loro uso: https://docs.python.org/3/library/

Ora proviamo a creare un modulo che crea le seguenti istruzioni:

quadrato(x)

rettangolo(x,y)

triangolo(x,y)

Queste istruzioni dovranno eseguire, rispettivamente, l’area del quadrato, del rettangolo e del triangolo.

Scriviamo un nuovo programma Python e iniziamo con lo scrivere le istruzioni per calcolare l’area del quadrato.

L’area del quadrato si calcola: lato per lato

Ecco il programma:

 

 

 

Ma così, questa istruzione non serve a nulla. Per creare un modulo, è necessario creare una funzione, e dentro la funzione inserire le istruzioni.

Quindi aggiungiamo:

 

 

 

 

In questo modo, quando importeremo il modulo, verrà riconosciuta l’istruzione quadrato, che peraltro si aspetta una variabile di nome x. Poi, dentro questa funzione, verrà eseguito il calcolo x * x, ovvero la moltiplicazione del valore di x per sè stesso, che equivale a lato per lato, cioè il calcolo dell’area del quadrato.

Salviamo questo programma, ad esempio, con il nome “area.py”, e soprattutto salviamolo nella stessa cartella in cui si trova Python, altrimenti non verrà riconosciuto e non sarà possibile importarlo.

Ora che abbiamo salvato il programma con il nome “area.py”, questo nome “area.py” sarà anche il nome del modulo, mentre quadrato, sarà il nome di una delle istruzioni del modulo.




Apriamo l’IDLE di Python e scriviamo l’istruzione per importare tutte le istruzioni del nostro modulo “area.py”:

 

 

 

 

 

Abbiamo appena importato tutte le istruzioni del nostro personalissimo modulo “area.py”, scrivendo from area import *

Ora possiamo far eseguire l’area di un qualsiasi quadrato scrivendo: quadrato(5)

Nel mio caso ho usato come valore di lato del quadrato, il numero 5, voi inserite quello che preferite.

Quando eseguo questa istruzione, avrò come risultato l’area del quadrato:

 

 

 

 

 

 

Il risultato infatti è 25.

Se importo il modulo “area.py” in un nuovo programma, potrò usare le sue istruzioni nel nuovo programma.

Ora possiamo inserire nuove funzioni nel modulo, per calcolare l’area del rettangolo e del triangolo. Ecco:

 

 

 

 

 

 

Per le funzioni triangolo  rettangolo, vengono richiesti due valori (x ed y), che sono i valori di base e altezza.

Salvate questo aggiornamento del modulo “area.py”, chiudete l’IDLE di Python e riapritelo, quindi importate il modulo “area.py”. Poi divertitevi a scrivere i vostri programmi con queste nuove istruzioni.

 

 

 

 

 

 

 

La spiegazione è finita, però…

…questo modulo “area.py” esegue i calcoli delle aree e li scrive sullo schermo. Se invece noi avessimo bisogno di creare un modulo in cui le istruzioni eseguono i calcoli, ma i risultati dei calcoli si possano elaborare nel programma, allora modifichiamo il modulo “area.py” in questo modo:

 

 

 

 

 

 

In pratica è stata istruita l’istruzione print con l’istruzione return. Infatti, in questo modo, quando chiameremo una delle istruzioni del nostro modulo, verrà solo eseguito il calcolo previsto ma non verrà scritto sullo schermo. Questo è utile perchè a volte non abbiamo la necessità di far scrivere il risultato sullo schermo, ma magari di inserirlo in una variabile per utilizzarlo per calcoli successivi.

Potremo quindi scrivere un programma simile:

from area import *
mia_area=triangolo(6,4)
sua_area=triangolo(3,2)
nostra_area=mia_area + sua_area

Come vedete non abbiamo mai mostrato i risultati sullo schermo, perchè non abbiamo usato istruzioni print, ma abbiamo usato i risultati delle varie operazioni per eseguire dei calcoli.

Ora non fermatevi a questo semplice esempio del mio articolo, ma pensate in grande, e magari sviluppate moduli che eseguono calcoli trigometrici complessi (che non so nemmeno cosa sono), oppure calcoli finanziari tipo mutui, finanziamenti, ammortamenti, ecc… o qualsiasi altro modulo che svolga qualsiasi cosa vogliate, non solo matematica.