🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Importare Moduli in Python

Codegrind Team•Sep 11 2024

In Python, i moduli ti permettono di organizzare il codice in modo modulare e riutilizzabile. I moduli sono file che contengono funzioni, classi, variabili o altre strutture, e possono essere importati in altri script per estendere la funzionalità del codice. Python include una vasta gamma di moduli standard, ma puoi anche creare moduli personalizzati o importare moduli esterni. In questo articolo esploreremo come funziona l’importazione dei moduli in Python, con esempi pratici.

Cos’è un Modulo?

Un modulo in Python è un singolo file .py che contiene definizioni di funzioni, classi, variabili o altri oggetti. Un modulo ti permette di organizzare il codice in modo logico e riutilizzabile. Python include una libreria standard di moduli predefiniti, ma puoi anche creare i tuoi moduli personalizzati.

Ecco un esempio di un modulo Python chiamato matematica.py che contiene alcune semplici funzioni matematiche:

# matematica.py
def somma(a, b):
    return a + b

def sottrazione(a, b):
    return a - b

Importare Moduli in Python

Per utilizzare un modulo in un altro file, puoi importarlo utilizzando la parola chiave import. Una volta importato, puoi accedere alle funzioni e variabili definite nel modulo.

Esempio di Importazione di un Modulo

Supponiamo di avere uno script chiamato main.py nella stessa directory del modulo matematica.py. Possiamo importare il modulo matematica in questo modo:

# main.py
import matematica

print(matematica.somma(5, 10))  # Output: 15
print(matematica.sottrazione(10, 5))  # Output: 5

In questo esempio, stiamo importando tutto il modulo matematica, e poi accediamo alle funzioni somma e sottrazione utilizzando la notazione matematica.somma e matematica.sottrazione.

Importare Funzioni Specifiche

Se desideri importare solo alcune funzioni o variabili da un modulo, puoi utilizzare la sintassi from ... import. Questo ti permette di evitare la notazione modulo.nome:

from matematica import somma

print(somma(5, 10))  # Output: 15

In questo caso, abbiamo importato solo la funzione somma e possiamo usarla direttamente senza dover scrivere matematica.somma.

Importare Tutto da un Modulo

Se vuoi importare tutto da un modulo senza dover specificare i nomi individuali, puoi usare from ... import *. Tuttavia, questo approccio è sconsigliato poiché può causare conflitti di nomi se più moduli hanno funzioni con lo stesso nome.

from matematica import *

print(somma(5, 10))  # Output: 15
print(sottrazione(10, 5))  # Output: 5

In questo esempio, tutte le funzioni di matematica.py vengono importate e sono accessibili direttamente.

Utilizzo di Alias con as

Python ti consente anche di assegnare un alias a un modulo o a una funzione quando lo importi, rendendo il codice più leggibile o più breve.

Esempio di Alias per Modulo

import matematica as mat

print(mat.somma(5, 10))  # Output: 15

In questo esempio, matematica viene importato con l’alias mat, che possiamo usare per accedere alle sue funzioni.

Esempio di Alias per Funzioni

from matematica import somma as add

print(add(5, 10))  # Output: 15

Qui, la funzione somma viene importata con l’alias add.

Moduli Incorporati (Built-in)

Python offre una vasta libreria di moduli incorporati che puoi usare senza installazioni aggiuntive. Alcuni esempi comuni includono:

Esempio con il Modulo math

Il modulo math include funzioni matematiche avanzate come la radice quadrata, il logaritmo e le funzioni trigonometriche.

import math

print(math.sqrt(16))  # Output: 4.0
print(math.pi)        # Output: 3.141592653589793

Esempio con il Modulo random

Il modulo random ti consente di generare numeri casuali e selezionare elementi casuali da una lista.

import random

print(random.randint(1, 10))  # Numero casuale tra 1 e 10

Importare Moduli Esterni

Python ha un vasto ecosistema di librerie esterne che puoi installare utilizzando pip, il gestore dei pacchetti Python. Ad esempio, puoi installare la libreria requests per fare richieste HTTP.

Installare Moduli con pip

Puoi installare un modulo esterno con pip direttamente dalla riga di comando:

pip install requests

Importare Moduli Esterni

Dopo l’installazione, puoi importare il modulo nel tuo codice come qualsiasi altro modulo:

import requests

response = requests.get("https://api.github.com")
print(response.status_code)

Moduli Personalizzati

Puoi creare i tuoi moduli semplicemente scrivendo del codice Python in un file .py e importandolo in altri script. Questo è utile per organizzare progetti più grandi e riutilizzare codice tra file diversi.

Esempio di Modulo Personalizzato

Supponiamo di avere un file calcoli.py con alcune funzioni matematiche:

# calcoli.py
def moltiplica(a, b):
    return a * b

def dividi(a, b):
    if b == 0:
        return "Errore: divisione per zero"
    return a / b

Puoi importare questo modulo in un altro script, come main.py:

# main.py
import calcoli

print(calcoli.moltiplica(5, 3))  # Output: 15
print(calcoli.dividi(10, 2))     # Output: 5.0

Pacchetti: Moduli Organizzati in Cartelle

Un pacchetto è una cartella che contiene più moduli e un file speciale chiamato __init__.py. Il file __init__.py segnala a Python che la directory dovrebbe essere trattata come un pacchetto.

Struttura di un Pacchetto

mio_pacchetto/
    ├── __init__.py
    ├── modulo_a.py
    └── modulo_b.py

Importare da un Pacchetto

Se hai un pacchetto chiamato mio_pacchetto, puoi importare i moduli contenuti al suo interno:

from mio_pacchetto import modulo_a, modulo_b

Importare da Altre Directory

Per importare moduli da una directory diversa, puoi aggiungere il percorso della directory al sys.path.

import sys
sys.path.append('/percorso/della/directory')

import nome_modulo

Considerazioni Finali

Importare moduli in Python ti permette di sfruttare al massimo la potenza del linguaggio, rendendo il tuo codice più modulare e riutilizzabile. Che tu stia importando moduli della libreria standard, pacchetti esterni o moduli personalizzati, l’importazione dei moduli ti aiuta a organizzare meglio il tuo progetto.