Un aggiornamento Smooth sui moduli di Python

Questo sarà l'ultimo tutorial della serie di refreshers Python. Naturalmente, non posso concludere questa serie a meno che non ti sposto al livello successivo nella programmazione, cioè con cui lavorare moduli, che sono considerati fondamentali quando si gestiscono attività di programmazione non banali.

Le attività di programmazione non banali per la maggior parte del tempo significano programmi lunghi con molte linee di codice. I moduli sono utili quando tentano di suddividere tali programmi complessi in blocchi gestibili e consentono il riutilizzo del codice. In questo modo, sarai anche in grado di utilizzare il codice in qualsiasi momento importazione quel modulo. Puoi anche risolvere il problema di copiare alcune funzioni più volte in diversi programmi gestendola tramite moduli.

Andiamo avanti nel vivo del tutorial e vediamo come possiamo lavorare con i moduli in Python.

Moduli in Python

Quando hai creato i programmi Python, li mettevi in ​​un file sorgente che termina con .py. I moduli in Python sono semplicemente creati in questo modo. Cioè, sono file sorgenti che terminano con .py, e si trova in una directory in cui Python è in grado di trovarli (ovvero la directory di lavoro corrente o elencata in sys.path). 

I moduli normalmente contengono istruzioni correlate l'una con l'altra. Come accennato in precedenza, possiamo utilizzare i moduli in qualsiasi momento. Usare un modulo significa usare il codice (cioè variabili, funzioni) memorizzato in quel modulo. Viene chiamato il processo di attivazione e utilizzo di tale codice importazione.

Creazione di moduli

Creare un modulo in Python è molto semplice. Diciamo che volevamo creare un modulo che stampasse il nome di qualcuno. Digita il seguente codice usando il tuo editor preferito e salvalo come myname.py. Questo sarà il nome del tuo modulo escluso il .py parte, che sarà assegnata alla variabile globale __nome__.

def print_name (n): stampa 'Ciao', n

Importazione di moduli

Se hai un altro file Python nel quale sei interessato ad usare il codice nel modulo sopra definito, importeremo il modulo usando il importare parola chiave, come segue:

import myname nome.prodotto ('Abder')

L'output di questo script sarà: Ciao Abder.

Assicurati che Python sia in grado di trovare il file importato. Ad esempio, mettilo nella stessa directory del file Python in cui hai usato importare.

Come puoi vedere, l'importazione di un modulo ci consente di migliorare il nostro programma aggiungendo nuove funzionalità ad esso da file esterni (cioè i moduli).

Ma cosa sta succedendo qui dietro le quinte? Quando tu importare un modulo, Python compila quel modulo e genera a .pyc file e un programma viene ricompilato solo se il file .py è più nuovo del .pyc file.

Facciamo un altro esempio, ma questa volta con un modulo built-in Python. Scegliamo il modulo matematico. In questo esempio, per un numero che passiamo vogliamo trovare il soffitto (il valore intero più piccolo maggiore o uguale al numero), pavimento (il più grande valore intero minore o uguale al numero), e il valore assoluto di quel numero. Lo script Python per questo programma ha il seguente aspetto:

import math x = 4.7 print 'Il soffitto di' + str (x) + 'è:' + str (math.ceil (x)) print 'Il pavimento di' + str (x) + 'è:' + str ( math.floor (x)) print 'Il valore assoluto di' + str (x) + 'è:' + str (math.fabs (x))

Se si esegue questo script, l'output dovrebbe apparire come segue:

Il limite di 4,7 è: 5,0 Il valore di 4,7 è: 4,0 Il valore assoluto di 4,7 è: 4,7

Quindi, siamo stati in grado di applicare diverse operazioni sul nostro numero senza scrivere codice per ogni operazione, ma piuttosto da riutilizzo funzioni già disponibili in matematica modulo. Questo aiuta molto, vero??

Ci si potrebbe chiedere, dovremmo sempre usare il math.function () notazione? Non possiamo usare immediatamente la funzione senza precederla con il nome del modulo (ad es. matematica)? Sì, puoi farlo usando la seguente sintassi per importare:

dall'importazione matematica *

In questo modo, puoi chiamare le funzioni precedenti (ceil (x), piano (x), e fabs (x)) senza la necessità di precederli con il nome del modulo, matematica

Moduli come script

Torniamo al nostro semplice modulo, myname.py:

def print_name (n): stampa 'Ciao', n

Possiamo trattare questo modulo come uno script (principale) standalone che possiamo direttamente eseguire e passare argomenti dalla riga di comando? Ad esempio, cosa succederà se hai digitato quanto segue nella tua riga di comando?

python myname.py 'Abder'

Niente! Provalo, non otterrai alcun risultato. 

Per poter eseguire il modulo come script, dobbiamo impostare __name__ = '__main__'. Quindi, il modulo il mio nome ora apparirà come segue:

def print_name (n): stampa 'Hi', n se __name__ == '__main__': import sys print_name (sys.argv [1])

Se esegui questo comando nel tuo terminale: python myname.py 'Abder', dovresti ottenere il seguente risultato:

Ciao Abder

Pacchi

Un concetto importante che va di pari passo con i moduli è quello di pacchi. Un pacchetto è una raccolta di moduli. In altre parole, mentre un modulo è un file, un pacchetto è una directory / cartella. È un modo con cui strutturiamo i moduli usando nomi di moduli puntati. Quindi se vedi un importare affermazione che assomiglia a:

import university.department

Questo significa che abbiamo un modulo chiamato Dipartimento nel pacchetto Università.

Come possiamo vedere, l'uso dei moduli ci consente di suddividere un programma complesso in blocchi gestibili, rendendo più facile tracciare eventuali errori nel programma, comprenderne meglio le funzionalità e abilitare la riusabilità.

Con questo, arriviamo alla fine del Serie di refreshers Python. In questa serie, abbiamo imparato le basi e i concetti necessari che è necessario afferrare per andare oltre nel linguaggio di programmazione Python. Abbiamo imparato i concetti di liste, dizionari e tuple. Abbiamo anche imparato come prendere decisioni attraverso le condizioni (link a condizioni di Python), e ripetere attraverso i loop (collegamento a loop Python). Abbiamo anche imparato come lavorare con le funzioni, creare classi e istanziarle (vale a dire. oggetti) e impacchettare il nostro lavoro in moduli.