Introduzione
I moduli Python sono un modo conveniente per incapsulare e organizzare codice riutilizzabile. Se ti ritrovi a copiare e incollare lo stesso codice su più script o progetti, è una buona indicazione che dovresti prendere in considerazione la creazione di un modulo personalizzato. In questo articolo ti guideremo attraverso il processo di creazione e utilizzo del tuo modulo Python personalizzato.
Comprendere le nozioni di base
Un modulo in Python è semplicemente un file contenente definizioni e istruzioni Python. Il nome del file è il nome del modulo seguito dall'estensione .py . Ad esempio, un modulo denominato mymodule verrebbe salvato come mymodule.py .
Creare il modulo
Per il nostro esempio, supponiamo che tu abbia alcune funzioni matematiche che desideri riutilizzare nei progetti. Quindi puoi scriverli in un singolo file e poi riutilizzarli come modulo in altri script Python.
Ad esempio, ho creato di seguito lo script Python mymath.py che include funzioni di aggiunta, sottrazione, moltiplicazione e divisione.
# mymath.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "Undefined (division by zero)"
return x / y
Qui abbiamo creato un semplice modulo mymath.py con quattro funzioni aritmetiche di base.
Utilizzare il modulo
Ora vediamo come possiamo utilizzare questo modulo personalizzato in un altro script Python. Qui possiamo usare l'istruzione import con il nome file dello script del modulo Python senza estensione. Vedi l'esempio sotto:
# main.py
# Importing our custom module
import mymath
# Using functions from our module
print(mymath.add(5, 3))
print(mymath.subtract(5, 3))
print(mymath.multiply(5, 3))
print(mymath.divide(5, 3))
Nota: assicurati che sia main.py che mymath.py siano nella stessa directory o che mymath.py sia in una directory che si trova in sys.path di Python .
Utilizzando l'istruzione from...import
In alcuni casi, potrebbe essere necessario utilizzare alcune funzioni solo dal modulo. Quindi, invece di importare l'intero modulo, puoi anche importare funzioni specifiche:
from mymath import add, subtract
print(add(5, 3))
print(subtract(5, 3))
Utilizzo __name__
Nei moduli più grandi, potresti voler testare il tuo codice. L' __name__attributo consente di verificare se il modulo viene eseguito direttamente o importato altrove:
# mymath.py
def add(x, y):
# ... (same as above)
# ... other functions ...
if __name__ == "__main__":
print("Running tests for mymath module")
assert add(2, 3) == 5
# ... more tests ...
Organizza più moduli con pacchetti
Se disponi di più moduli correlati, puoi organizzarli in un pacchetto. Un pacchetto è semplicemente un modo per raccogliere insieme moduli correlati all'interno di un'unica gerarchia di directory.
Ad esempio, per creare un pacchetto denominato miopacchetto :
Crea una directory denominata miopacchetto .
mkdir mypackage
Aggiungi un file vuoto chiamato __init__.py alla directory (questo fa sì che Python consideri la directory come un pacchetto o sottopacchetto).
touch ./mypackage/__init__.py
Posiziona i file del modulo correlati nella directory mypackage .
Quindi, puoi importare moduli da questo pacchetto utilizzando:
from mypackage import mymath
Distribuire il modulo
Se ritieni che il tuo modulo possa avvantaggiare la più ampia comunità Python, considera la possibilità di distribuirlo tramite Python Package Index (PyPI). Innanzitutto, lo impacchetterai utilizzando setuptools, quindi potrai distribuirlo con lo spago.
Conclusione
Creare e utilizzare moduli Python personalizzati è una competenza essenziale, soprattutto quando i tuoi progetti diventano sempre più complessi. I moduli aiutano a scomporre sistemi complessi, a promuovere il riutilizzo del codice e a mantenere una base di codice più pulita. Mentre continui il tuo viaggio con Python, pensa ai moduli come al tuo fidato kit di strumenti, sempre pronto ad aiutarti a creare grandi cose.