Praticamente un package è una cartella che può contenere delle altre cartelle(sottopackage) dove sono disposti i moduli. Se, riprendendo l'esempio di prima, avessimo delle librerie per manipolare immagini potremmo creare un package cosi:
/immagini #cartella principale del package
__init__.py #file __init__ per inizializzare il package
/converti #sottopackage coverti che contiene i moduli per convertire le immagini
__init__.py #file __init__ per inizializzare il sottopackage
png.py #modulo png.py
jpg.py
gif.py
/trasforma
__init__.py
ruota.py
scala.py
load.py #modulo che non fa parte di sottopackage ma solo del package
lo stesso accade quando includiamo un sottopackage.
Il file __init__.py può anche essere un semplice file vuoto oppure può inizializzare il package o settare la variabile globale __all__, che vedremo in un altro post.
Proviamo ora ad importare il package, cosa che è molto simile all'importazione dei moduli:
import immagini.load
immagini.load.funzione(attributi)
from immagini import load
load.funzione(attributi)
from immagini.load import funzione
funzione(attributi)
from immagini.load import *
funzione(attributi)
import immagini.converti.png
from immagini.converti import png
from immagini.converti.png import *
from immagini.converti.png import funzione
Spero di essere stato chiaro con il mio primo post se avete problemi chiedetemi con i commenti.