Se trovi utile il mio blog sostienimi con una piccola donazione. GRAZIE

9 – I moduli

INDICE ARTICOLI

Man mano che diverremo più esperti e padroni del linguaggio anche i nostri programmi cresceranno in termini di numero di righe di codice e di complessità.
Per mantenere leggibile e più facilmente gestibile il nostro programma sarà necessario spezzare il nostro codice in più script.
In questo modo creeremo delle raccolte di funzioni specializzate nell’eseguire alcune operazioni che potranno essere riutilizzate anche in altri nostri programmi.
In python queste raccolte vengono chiamate moduli (in altri linguaggi librerie).
I moduli quindi sono dei files di script (files con estensione “PY”) che possono essere richiamati da altri programmi python per riutilizzare le funzioni in essi contenute.
Queste raccollte possono essere create facilmente dal programmatore, ma ne esistono moltissime gia’ precostruite e già contenute nell’installazione di python.
Queste in genere raccolgono funzioni utili per risolvere svariate problematiche, per esempio:

  • string: modulo che raccoglie funzioni per gestire le stringhe, ad esempio:

funzioni per la conversione da stringa a numero
funzioni per la conversione da minuscolo a maiuscolo
funzioni per la sostituzioni di pezzi di stringhe

  • sys: modulo che raccoglie funzioni per reperire informazioni di sistema, ad esempio reperire gli argomenti passati sulla linea di comando.
  • os: modulo per eseguire operazioni del sistema operativo sottostante, ad esempio copiare, rinominare o cancellare un file.

Se volete avere più informazioni sui moduli standard di Python date uno sguardo qui www.python.org/doc/lib

Quindi per crearci un modulo bisognerà creare un file script con estensione PY e riempirlo con le funzioni necessarie al modulo stesso.
Per poterlo utilizzare in un programma dovremo importalo utilizzando il comando “import” seguito dal nome del modulo stesso.
Il modulo dovrà essere nella disrectory corrente oppure nel path di ricerca dei moduli.
Se ad esempio disponiamo di modulo che si chiama “libreria.py” che contenga le funzioni apri(), cerca(), chiudi() potremo utilizzarne le sue funzioni come sotto:

import libreria
libreria.apri()
libro=5
libreria.cerca (libro)
libreria.chiudi()

Ogni volta che viene intrepretato (eseguito) un programma python che utilizza dei moduli questi ultimi vengono tradotti direttamente in bytecode, ovvero nella directory dove risiede il nostro modulo “libreria.py”, dopo la prima esecuzione, troveremo un file con nome “libreria.pyc”.
I moduli così “compilati” verranno caricati molto più velocemente ma comunque eseguiti alla stessa velocità del codice non “compilato”.
Questo diminuirà notevolmente il tempo di caricamento di un programma e nel caso i nostri moduli vengano distribuiti solo in formato compilato sarà un po più complicato per chi li riceve riuscire a capire cosa vi è scritto al loro interno(una sorta di blanda protezione del nostro codice).
Quando si utilizzano le funzioni di un modulo è anche possibile evitare di scrivere tutte le volte il nome del modulo stesso importando anche i nomi delle funzioni :

import libreria
from libreria import cerca
libreria.apri()
libro=5
cerca (libro)
libreria.chiudi()

Addirittura è possibile importare tutti i nomi delle funzioni con un solo comando:

import libreria
from libreria import *

apri()
libro=5
cerca (libro)
chiudi()

Bisogna sapere che la pratica di importare con * da un modulo è malvista, dato che spesso ciò comporta una scarsa leggibilità del codice.

INDICE ARTICOLI