Commenti in Python: come, dove e perché

L’Arte dei Commenti in Python

Benvenuti, colleghi programmatori! Siete pronti a rendere il vostro codice più leggibile, manutenibile e, oserei dire, amato? La chiave di volta sta nei commenti. In Python, i commenti non sono solo un’opzione, ma una vera e propria necessità per chiunque voglia scrivere codice di qualità.

In questo tutorial, esploreremo i vari modi per inserire commenti in Python, con esempi pratici e progressivi, e vi daremo 5 consigli d’oro per scrivere commenti che facciano davvero la differenza.

Cosa sono i Commenti?

In poche parole, i commenti sono porzioni di testo all’interno del codice sorgente che vengono ignorate dall’interprete Python. Servono a spiegare, annotare o disabilitare temporaneamente sezioni di codice. Sono per gli esseri umani che leggono il codice, non per la macchina.

Modalità di Commento in Python

Python offre due modi principali per inserire commenti:

1. Commenti a Linea Singola (#)

Il modo più comune per commentare in Python è utilizzare il simbolo del cancelletto (#). Tutto ciò che segue il # sulla stessa riga viene considerato un commento.

Esempio Base:

Python

# Questo è un commento su una singola linea.
print("Ciao mondo!") # Questo commento spiega la riga di codice precedente.

Spiegazione:

  • La prima riga è interamente un commento.
  • La seconda riga contiene codice Python seguito da un commento sulla stessa riga.

Esempio Progressivo: Commenti per Spiegare una Variabile

Python

nome_utente = "Alice" # La variabile 'nome_utente' memorizza il nome dell'utente corrente.
età = 30             # L'età dell'utente, espressa in anni.

Spiegazione: Qui, i commenti chiariscono lo scopo e il tipo di dato di ciascuna variabile, rendendo il codice più comprensibile a prima vista.

Esempio Significativo: Commenti per Chiarire un Algoritmo Semplice

Python

# Calcolo dell'area di un rettangolo
lunghezza = 10
larghezza = 5

# La formula per l'area è lunghezza * larghezza
area = lunghezza * larghezza

print(f"L'area del rettangolo è: {area}")

Spiegazione: I commenti ci guidano attraverso il processo di calcolo dell’area, spiegando sia il contesto generale che la formula specifica utilizzata.

2. Commenti su Più Linee (Docstrings – Stringhe di Documentazione)

Sebbene Python non abbia un costrutto specifico per i commenti multilinea come alcuni altri linguaggi, possiamo usare le docstrings (stringhe di documentazione). Le docstrings sono stringhe racchiuse tra tre apici singoli (''') o tre apici doppi ("""). Quando sono la prima istruzione all’interno di un modulo, una classe, una funzione o un metodo, vengono interpretate come docstrings e sono accessibili a runtime.

Esempio Base:

Python

"""
Questo è un commento su più linee,
noto come docstring.
Può estendersi per diverse righe.
"""
print("Python è fantastico!")

Spiegazione: La docstring all’inizio del file spiega lo scopo generale dello script.

Esempio Progressivo: Docstring per una Funzione

Python

def saluta(nome):
    """
    Questa funzione saluta una persona con il nome specificato.

    Args:
        nome (str): Il nome della persona da salutare.

    Returns:
        str: Un messaggio di saluto formattato.
    """
    return f"Ciao, {nome}!"

messaggio = saluta("Bob")
print(messaggio)

Spiegazione: Questa docstring documenta la funzione saluta, specificando cosa fa, quali argomenti accetta (con il loro tipo) e cosa restituisce. Questo è fondamentale per la documentazione automatica e per chiunque debba usare la vostra funzione.

Esempio Significativo: Docstring per una Classe

Python

class Contatore:
    """
    Rappresenta un semplice contatore che può essere incrementato
    e il cui valore può essere resettato.
    """
    def __init__(self, iniziale=0):
        """
        Inizializza il contatore con un valore iniziale.

        Args:
            iniziale (int, optional): Il valore iniziale del contatore.
                                      Predefinito a 0.
        """
        self.valore = iniziale

    def incrementa(self):
        """
        Incrementa il valore del contatore di 1.
        """
        self.valore += 1

    def get_valore(self):
        """
        Restituisce il valore corrente del contatore.
        """
        return self.valore

    def resetta(self):
        """
        Resetta il contatore al suo valore iniziale (0).
        """
        self.valore = 0

# Utilizzo della classe Contatore
mio_contatore = Contatore()
print(f"Valore iniziale: {mio_contatore.get_valore()}") # Output: 0
mio_contatore.incrementa()
mio_contatore.incrementa()
print(f"Valore dopo incremento: {mio_contatore.get_valore()}") # Output: 2
mio_contatore.resetta()
print(f"Valore dopo reset: {mio_contatore.get_valore()}") # Output: 0

Spiegazione: Ogni componente della classe Contatore (la classe stessa, il costruttore __init__ e i metodi) è documentato con una docstring, rendendo l’intera struttura chiara e facilmente comprensibile. Questo è l’approccio standard per documentare il codice Python.

5 Indicazioni Base per Mettere Buoni Commenti nel Proprio Codice

Ora che sapete come fare i commenti, vediamo quando e cosa commentare per massimizzare il loro impatto.

  1. Spiega il “Perché”, Non il “Cosa”:

    • Cattivo Commento: # Incrementa il valore di x (Il codice già lo mostra chiaramente).
    • Buon Commento: # Incrementa il contatore dei tentativi per prevenire attacchi brute-force. (Spiega la ragione dietro l’azione). I commenti dovrebbero chiarire le intenzioni e le decisioni di progettazione, non semplicemente riscrivere il codice in inglese.
  2. Mantieni i Commenti Aggiornati:Un commento obsoleto è peggio di nessun commento, perché può fuorviare chi legge il codice. Se modifichi una sezione di codice, assicurati di aggiornare anche i commenti correlati. Questo richiede disciplina, ma è cruciale per la manutenibilità.
  3. Sii Conciso e Chiaro:Evita commenti prolissi o ambigui. Vai dritto al punto e usa un linguaggio semplice e diretto. Immagina che il lettore abbia fretta e voglia capire il concetto chiave rapidamente.
  4. Usa le Docstrings per la Documentazione API:Come abbiamo visto, le docstrings sono lo strumento principale per documentare moduli, classi, funzioni e metodi. Segui le convenzioni (es. Google Style, NumPy Style, reStructuredText) per descrivere argomenti, valori di ritorno, eccezioni sollevate e un riassunto generale. Questo permette a strumenti come Sphinx di generare documentazione automatica.
  5. Evita Commenti Ovvi o Rumorosi:Non commentare ogni singola riga di codice, specialmente se il codice è autoesplicativo. Troppi commenti possono appesantire la lettura e nascondere il vero valore di quelli significativi. Concentrati sulle parti complesse, sui “hack” temporanei (con un TODO), sulle decisioni di progettazione non evidenti e sulle assunzioni.
    • Evitare:

      Python

      # Assegna il valore 10 alla variabile 'a'
      a = 10
      # Stampa il valore di 'a'
      print(a)
      
    • Preferire: Lasciare che il codice parli da sé per le operazioni semplici.

Ci auguriamo che questo tutorial vi sia utile per padroneggiare l’arte dei commenti in Python. Ricordate: un buon codice non è solo quello che funziona, ma anche quello che può essere facilmente compreso e mantenuto da voi stessi e dagli altri, anche a distanza di tempo. Happy coding!