Moduli In Python
Moduli in Python¶
Obiettivi della Lezione¶
Al termine di questa lezione, sarai in grado di:
- Comprendere cosa sono i moduli in Python e perché sono utili.
- Creare e utilizzare moduli personalizzati.
- Importare moduli e specifiche funzioni o variabili al loro interno.
- Utilizzare moduli integrati in Python per estendere le funzionalità dei tuoi programmi.
- Applicare buone pratiche nella gestione e nell’organizzazione dei moduli.
Introduzione¶
In Python, i moduli sono fondamentali per la strutturazione del codice. Consentono di organizzare programmi complessi in parti più gestibili, riutilizzare codice e mantenere la pulizia e la leggibilità del codice. Un modulo è semplicemente un file che contiene definizioni e istruzioni Python. In questa lezione esploreremo come creare, importare e utilizzare i moduli per migliorare la nostra programmazione.
Spiegazione Teorica¶
Cosa sono i Moduli¶
Un modulo in Python è un file con estensione .py
che contiene definizioni di funzioni, classi e variabili, e può includere anche codice eseguibile. I moduli aiutano a suddividere grandi programmi in file più piccoli e organizzati.
Perché Usare i Moduli¶
- Riutilizzo del codice: Definire funzioni o classi una volta e riutilizzarle in diversi programmi.
- Organizzazione: Suddividere il codice in componenti logici.
- Manutenibilità: Facilitare aggiornamenti e debug.
Creare un Modulo¶
Per creare un modulo, basta salvare le definizioni in un file con estensione .py
.
Esempio:
Supponiamo di creare un modulo chiamato mio_modulo.py
:
# mio_modulo.py
def saluta(nome):
print(f"Ciao, {nome}!")
persona = {
"nome": "Alice",
"età": 30,
"paese": "Italia"
}
Importare un Modulo¶
Per utilizzare le funzioni o le variabili di un modulo, dobbiamo importarlo nel nostro script usando l’istruzione import
.
Sintassi base:
import nome_modulo
Esempio:
import mio_modulo
mio_modulo.saluta("Marco")
Usare from
per Importazioni Specifiche¶
Possiamo importare funzioni, classi o variabili specifiche da un modulo.
Sintassi:
from nome_modulo import nome_funzione
Esempio:
from mio_modulo import saluta
saluta("Luca")
Usare Alias con as
¶
Per semplificare o chiarire il codice, possiamo assegnare un alias al modulo o alla funzione.
Esempio:
import mio_modulo as mm
mm.saluta("Sara")
O per una funzione:
from mio_modulo import saluta as s
s("Giulia")
Moduli Integrati¶
Python include molti moduli integrati che possiamo utilizzare senza installazioni aggiuntive, come math
, datetime
, random
, ecc.
Esempio con il modulo math
:
import math
x = math.sqrt(16)
print(x) # Output: 4.0
4.0
La Funzione dir()
¶
La funzione incorporata dir()
restituisce un elenco di nomi definiti in un modulo.
Esempio:
import mio_modulo
print(dir(mio_modulo))
La Variabile __name__
¶
Ogni modulo in Python ha un attributo speciale __name__
. Il valore di __name__
è '__main__'
quando lo script viene eseguito come programma principale.
Esempio nell’uso:
# mio_modulo.py
def principale():
print("Eseguito quando il modulo viene eseguito direttamente")
if __name__ == "__main__":
principale()
Eseguito quando il modulo viene eseguito direttamente
# operazioni.py
def addizione(a, b):
return a + b
def sottrazione(a, b):
return a - b
Utilizzo del modulo in un altro script main.py
:
# main.py
import operazioni
num1 = 10
num2 = 5
print(f"Addizione: {operazioni.addizione(num1, num2)}") # Output: 15
print(f"Sottrazione: {operazioni.sottrazione(num1, num2)}") # Output: 5
Esempio 2: Importare Funzioni Specifiche¶
from operazioni import addizione
result = addizione(7, 3)
print(result) # Output: 10
Esempio 3: Utilizzare un Modulo Integrato (random
)¶
import random
numero_casuale = random.randint(1, 100)
print(f"Il numero casuale è: {numero_casuale}")
Il numero casuale è: 97
Esercizi Interattivi¶
Esercizio 1: Creare un Modulo¶
Crea un modulo chiamato
conversore.py
che contiene due funzioni:celsius_a_fahrenheit(celsius)
che converte Celsius in Fahrenheit.fahrenheit_a_celsius(fahrenheit)
che converte Fahrenheit in Celsius.
In un nuovo script, importa il modulo e chiedi all’utente di inserire una temperatura in Celsius, quindi stampa la conversione in Fahrenheit.
Soluzione:
File: conversore.py
def celsius_a_fahrenheit(celsius):
return (celsius * 9/5) + 32
def fahrenheit_a_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
File: main.py
import conversore
temp_c = float(input("Inserisci la temperatura in Celsius: "))
temp_f = conversore.celsius_a_fahrenheit(temp_c)
print(f"La temperatura in Fahrenheit è: {temp_f}")
Esercizio 2: Usare un Modulo Integrato¶
Utilizza il modulo integrato datetime
per stampare la data e l’ora attuali in formato leggibile.
Soluzione:
from datetime import datetime
data_corrente = datetime.now()
print("Data e ora attuali:", data_corrente.strftime("%d/%m/%Y %H:%M:%S"))
Buone Pratiche e Consigli¶
- Nomenclatura Chiara: Dai nomi significativi ai tuoi moduli per riflettere il loro contenuto.
- Evitare Nomi di Moduli in Conflitto: Non nominare i tuoi moduli come moduli integrati di Python.
- Organizzazione con Pacchetti: Per progetti più grandi, organizza i moduli in pacchetti utilizzando cartelle con un file
__init__.py
. - Evitare Importazioni Circolari: Progetta i moduli per evitare dipendenze circolari, che possono causare errori.
Conclusione¶
I moduli sono strumenti potenti in Python che consentono di scrivere codice più organizzato, riutilizzabile e manutenibile. Saper creare e utilizzare moduli, sia personalizzati che integrati, è fondamentale per lo sviluppo di programmi complessi. Applicando le buone pratiche viste, potrai migliorare la qualità del tuo codice e la tua produttività come sviluppatore Python.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Modules
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: Import Modules and Exploring The Standard Library