Introduzione all'import in Python
In Python è possibile importare non solo
moduli standard, come ad esempio re
(per lavorare con le espressioni regolari), ma anche creare
nuovi moduli personalizzati partendo da file
utente.
Supponiamo di avere un file lib.py, che
si trova nella stessa directory del nostro
file di lavoro test.py:
- lib.py
- test.py
Creiamo al suo interno una funzione che stamperà in console un punto esclamativo:
def func():
print('!')
Ora passiamo al file test.py e
importiamo in esso questa funzione. Nella riga superiore
del file scriviamo il comando import,
dopo il quale specifichiamo il nome del file necessario
(modulo). Poiché entrambi i file si trovano in una
stessa directory, dopo import è
sufficiente specificare solo il nome del modulo senza la sua estensione:
import lib
Poi chiamiamo la funzione importata. Per
farlo, dopo il nome del modulo, tramite un punto, specifichiamo
il nome della funzione func:
lib.func()
Risultato dell'esecuzione del codice:
'!'
Quando si importa un modulo, nel file di lavoro diventano disponibili non solo le funzioni, ma tutto il suo resto del contenuto, ad esempio, le variabili.
Dopo aver eseguito l'import del modulo, nella directory
di lavoro è apparsa automaticamente una cartella di servizio
__pycache__. Fate attenzione
al fatto che i nomi di tutti i file e le cartelle
di servizio in Python hanno il doppio underscore
iniziale e finale:
- /__pycache__/
- lib.py
- test.py
Ci sono casi in cui è necessario importare un
modulo che si trova in un'altra cartella, ad esempio,
al percorso /dir/lib.py:
- /__pycache__/
- /dir/
- lib.py
- test.py
Allora il nome della cartella e del file durante l'import viene scritto separato da un punto e similmente viene scritta la funzione importata:
import dir.lib
dir.lib.func()
Create un file file.py. Al suo interno create
una funzione che stamperà in console un
numero. Importate questa funzione nel vostro
file con il codice di lavoro.
Nel file test1.file1.py create
una funzione che stampi un messaggio qualsiasi.
Importatela nel vostro file di lavoro.