Sommario[Nascondere][Spettacolo]
Questa lezione riguarderà i moduli e i pacchetti in Python.
Sono un modo per organizzare il tuo codice sotto forma di file e sono davvero importanti se intendi creare applicazioni web con Python
moduli
Un modulo in Python è fondamentalmente un file con del codice Python che usiamo per organizzare il nostro codice in file. Pensalo come le sezioni di un supermercato. Quando vai in un supermercato ci sono diverse sezioni per frutta, verdura, prodotti per la pulizia ecc. Non vedi una sezione con tutti i prodotti.
È lo stesso concetto nella programmazione. Invece di scrivere tutto il nostro codice con tutte le funzioni e le classi in main.py, suddividiamo il nostro codice in più file. Ogni file è indicato come un modulo. In questo modo, non solo il nostro codice è meglio organizzato e strutturato, ma abbiamo anche la possibilità di riutilizzarlo. Vediamolo attraverso un esempio.
Definiamo due funzioni per convertire il peso da libbre a chilogrammi e viceversa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Ora, possiamo prendere queste due funzioni e inserirle in un modulo separato chiamato "convertitori", e quindi può essere importato in qualsiasi programma che necessita di queste funzioni di conversione. Lascia che ti mostri come farlo.
Apriamo il nostro pannello del progetto e facciamo clic con il pulsante destro del mouse sul progetto e aggiungiamo un nuovo file. Chiameremo questo file "Converters.py".
Ora copia il codice dal file predefinito e incollalo in "Converters.py".
Con questo, abbiamo ripulito il nostro modulo principale e non è gonfio di funzioni diverse. Man mano che scriviamo più funzioni con le classi, le inseriamo nei moduli corrispondenti. Un modulo dovrebbe contenere tutte le relative funzioni e classi. Ora, vogliamo importare il modulo convertitori nel nostro modulo app. Per fare questo, scrivi import converters
in alto senza l'estensione “.py”.
Possiamo accedere ai membri di un modulo utilizzando un operatore punto simile ai metodi.
Convertiamo 70 kg in libbre:
C'è anche un'altra sintassi per l'importazione di moduli. Invece di importare l'intero modulo, possiamo importare funzioni specifiche da quel modulo. Possiamo digitare from Converters import
e premere “control + spazio per visualizzare l'elenco delle funzioni disponibili. Con questo, possiamo chiamare direttamente questa funzione.
Esercitare
Ecco il tuo esercizio
Questo è legato a un esercizio della lezione in cui abbiamo discusso "per i loop” dove abbiamo scritto un programma per scoprire il numero più grande da un elenco
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Questo codice attualmente non ha organizzazione. Non abbiamo funzioni o moduli e il programma è scritto in un unico file. Va bene per i piccoli programmi, ma man mano che i tuoi programmi crescono, devi organizzare correttamente il tuo codice in classi e moduli. Pertanto, come parte di questo esercizio, voglio che tu scriva una funzione, la chiami find_max
. Questa funzione dovrebbe prendere una lista e restituire il numero più grande in quella lista. Dopodiché vai avanti e inserisci questa funzione in un modulo separato, estraila da qui e inseriscila in un modulo chiamato utils
. Questo modulo dovrebbe contenere un sacco di funzioni di utilità. Importa il utils
modulo nel modulo corrente e chiamare find_max
funzione. Infine, ottieni il risultato e stampalo sul terminale.
Questo esercizio è un po' impegnativo ma facilmente realizzabile.
Soluzione
Inizia definendo una funzione find_max
e aggiungi un parametro chiamato numeri. All'interno di questa funzione, scrivi l'algoritmo per trovare il numero più grande in una lista.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Salva questo codice in un file "utils.py" come modulo.
Tornando al nostro programma principale, importa semplicemente il modulo con una delle due sintassi ed esegui semplicemente la logica.
Una cosa su cui devo attirare la vostra attenzione è l'indebolimento max
. Il motivo è il max
è una funzione incorporata in Python e la stiamo ridefinendo. Quindi questo è un avvertimento dal compilatore Python che non possiamo più usare max come sua funzione integrata.
Moduli integrati in Python
Python viene fornito con una libreria standard che contiene diversi moduli per attività comuni come inviare e-mail, lavorare con data e ora, generare valori casuali e password e così via. Ci sono così tanti moduli già integrati in Python, il che significa che ci sono già molte funzionalità che possiamo riutilizzare. Puoi trovare questi moduli qui.
Pack
I pacchetti sono fondamentalmente un altro modo per organizzare il nostro codice sopra i moduli. Un vero progetto può contenere centinaia o addirittura migliaia di moduli e nel tempo la nostra directory si gonfierà di così tanti file. Pertanto, un approccio migliore consiste nell'organizzare i moduli correlati all'interno di un pacchetto che rende il pacchetto un contenitore per più moduli.
Una nuova directory viene aggiunta al progetto e tutti i moduli correlati vengono aggiunti a quella directory. Ad esempio, pensa a un centro commerciale. Ci sono diverse sezioni per l'abbigliamento uomo, donna e bambino in un centro commerciale che sono come dei pacchi. Ogni sezione ha aree diverse per diversi tipi di prodotti come scarpe, t-shirt e giacche. Pensa a questi come moduli.
Vediamo, come creare e utilizzare i pacchetti in Python.
Innanzitutto, aggiungi una nuova directory dal pannello del progetto. Chiamiamolo “eCommerce”. Questo pacchetto conterrà tutti i moduli relativi a un'applicazione eCommerce.
È ancora una directory vuota e per convertirla in un pacchetto, dobbiamo creare un file speciale al suo interno. Aggiungi un nuovo file python in questa directory e chiama quel file "__init__". È una convenzione speciale in Python e quando l'interprete Python vede un file con questo nome in una directory, tratta questa directory come un pacchetto.
Abbiamo anche un metodo alternativo e conciso per creare un pacchetto. Basta fare clic con il pulsante destro del pannello del progetto e creare un pacchetto Python dall'elenco. Chiamalo "eCommerce" e il gioco è fatto. Creerà automaticamente una directory con un file Python chiamato "__init__".
Ora creiamo un modulo nel pacchetto e chiamiamolo "spedizione". In questo modulo creiamo una semplice funzione per il calcolo dei costi di spedizione.
def calc_shipping():
print("calc_shipping")
Per accedere a questa funzione nel nostro modulo principale, dobbiamo accedervi tramite il pacchetto e-commerce. Ancora una volta abbiamo due metodi per importare questo modulo.
Nel primo metodo, possiamo importare l'intero modulo e quindi chiamare una funzione in modo indipendente come questa:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Tuttavia, con questo approccio, la chiamata di una delle funzioni a questo modulo richiede l'aggiunta di un prefisso eCommerce.shipping.
È molto prolisso. Quindi, quando lavoriamo con i pacchetti, utilizziamo spesso il secondo approccio e utilizziamo il from
.
from eCommerce.shipping import calc_shipping
calc_shipping()
Se hai più funzioni in un modulo, puoi importarle tutte in una singola riga usando le virgole tra di loro. Diciamo che c'è un'altra funzione per il calcolo delle tasse nel nostro modulo di spedizione. Verrà importato in questo modo:
from eCommerce.shipping import calc_shipping, calc_tax
È inoltre possibile importare singoli moduli e lasciare che le funzioni vengano richiamate in una fase successiva del programma. Importiamo la spedizione del modulo e quindi utilizziamo un operatore punto per chiamare la funzione calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Incartare!
Pacchetti e moduli sono estremamente importanti in Python. Soprattutto, quando vuoi lavorare con un framework come Django che viene utilizzato per la creazione applicazioni web con Python. Esamineremo Django durante un altro corso Python.
Questa è stata l'ultima lezione convenzionale di questa serie. La prossima lezione si discosterà dal nostro formato abituale e impareremo alcuni importanti casi d'uso in Python. Questo segnerà la fine di questa serie e passeremo alla nostra prossima serie Python. Resta sintonizzato per questo.
Lascia un Commento