Pass in Python: come funziona il segnaposto?

In Python, pass è un segnaposto che impedisce al programma di emettere un messaggio di errore. Grazie a questa istruzione la sintassi rimane invariata.

Cos’è pass in Python?

Innanzitutto, l’istruzione pass in Python viene utilizzata come segnaposto senza altre funzioni di base. In alcune circostanze, può essere importante inserire nel codice una dichiarazione che indichi al programma di continuare l’esecuzione, così da evitare inconvenienti con questo linguaggio di programmazione. Un esempio tipico di questo caso è il codice in cui è già stato creato un posto per una funzione, ma non è ancora stato implementato o elaborato. Se si lascia il corpo vuoto, viene riprodotto un messaggio di errore. A impedire che ciò si verifichi ci pensa pass. In seguito, il segnaposto può essere sostituito dalla funzione vera e propria e il codice rimane corretto.

Come viene utilizzato pass in Python?

L’istruzione pass in Python è semplicemente espressa dal comando pass e utilizzata all’interno del blocco di codice. Soprattutto nei cicli, per i quali non è ancora stata definita una determinata funzione, si utilizza pass. Il segnaposto viene spesso utilizzato dopo un’istruzione if. Si presenta in questo modo:

if some_condition:
    print("Condition encountered")
else:
    pass

In Python, pass può anche venire combinato con altre dichiarazioni.

Come funziona pass in Python?

Il funzionamento di pass in Python, ad esempio in un ciclo, è in qualche modo simile a quello di un’operazione di polizia che regola il traffico e lo dirige oltre il luogo dell’incidente. Il programma inizia il primo passaggio, interroga una condizione definita e verifica se è vera o falsa e procede di conseguenza. Tuttavia, se lo sviluppatore o la sviluppatrice non ha inserito una conseguenza in questo punto, il programma emette un errore. L’istruzione pass ora guida il programma oltre questo “incidente” e garantisce che la query possa continuare a essere eseguita senza interruzioni.

Pass in Python in un ciclo for

Grazie agli esempi, vedete rapidamente a cosa serve l’istruzione pass in Python e quali sono i vantaggi di questa istruzione. Nel primo esempio, si deve creare una serie di numeri con un ciclo for in Python. A tal fine, il programma conta da 0 in su. La condizione di terminazione è che il numero non deve diventare maggiore o uguale a 10. Utilizzando un’istruzione if else in Python si inserisce normalmente una restrizione non appena il contatore raggiunge 8. Tuttavia, pass elimina questa restrizione e dice al programma di continuare.

for num in range(10):
    if num == 8:
        pass
    print(f"Il numero corrente è: {num}")
print("Il conteggio è terminato")

Il risultato è ora il seguente:

Il numero corrente è: 0
Il numero corrente è: 1
Il numero corrente è: 2
Il numero corrente è: 3
Il numero corrente è: 4
Il numero corrente è: 5
Il numero corrente è: 6
Il numero corrente è: 7
Il numero corrente è: 8
Il numero corrente è: 9
Il conteggio è terminato

Dal risultato ottenuto sembra che un ciclo sia stato eseguito normalmente e abbia contato da 0 a 9 senza interruzioni. Tuttavia, se aveste omesso pass a questo punto, l’istruzione if sarebbe stata incompleta e il programma avrebbe prodotto un errore. Di conseguenza, pass in Python non viene semplicemente ignorato; invece, l’istruzione indica al programma di non prendere in considerazione la riga corrente (incompleta) e di concentrarsi sulle dichiarazioni successive.

Pass in Python in un ciclo while

L’istruzione pass in Python può essere utilizzata anche in un semplice ciclo while in Python, che già conoscerete da un tutorial su Python. In questo esempio, il ciclo deve verificare se un numero è inferiore a 5. Poiché la conseguenza (else) non è ancora definita, il programma rileverebbe un errore quando viene eseguito non appena il numero è uguale o superiore a 5, e quindi emetterebbe un errore. Con pass, invece, il programma può essere semplicemente eseguito.

counter = 0
while counter < 5:
    print(f"Il numero {counter} è inferiore a 5")
    counter = counter + 1
else:
    pass

Pass in Python in una classe

Inoltre, pass funziona anche all’interno di una classe di linguaggi di programmazione web. È utile se la classe è già stata creata, ma non se ne conoscono ancora tutti i contenuti. In questo esempio, si devono distinguere i veicoli che entrano in un cortile. Mentre per le auto e i camion esistono già istruzioni concrete, non ce ne sono per le biciclette. Il codice si presenta quindi così:

class veicolo:
    def auto(self):
        print("Un'auto è entrata nel cortile")
    def camion(self):
        print("Un camion è entrato nel cortile")
    def bicicletta(self):
        pass

Le differenze tra break e continue

Sebbene pass in Python sia simile alle istruzioni break e continue, ci sono anche alcune differenze fondamentali. Tutte e tre le dichiarazioni hanno lo scopo di evitare che un ciclo o un programma commetta errori. Tuttavia, mentre pass si limita a garantire che il programma possa continuare correttamente, break e continue intervengono in modo molto più completo nel processo. L’istruzione break assicura che un ciclo venga terminato completamente se una condizione intermedia non è più soddisfatta prima della sua fine. La dichiarazione continue fa sì che un ciclo venga interrotto in corrispondenza di un determinato evento esterno e che venga poi continuato. Per saperne di più, consultate l’articolo dedicato a break e continue in Python.

Uso non necessario di pass in Python

Poiché pass in Python non richiede di fare praticamente nulla al programma, in alcuni casi l’istruzione è superflua. Anche se il suo uso non è sbagliato, se questa istruzione venisse omessa, il risultato sarebbe identico e il codice più breve. Di seguito un esempio di un caso simile:

if 2 + 2 == 4:
    print("Questo risultato è corretto")
    pass
    print("Questo era prevedibile")

Se ora un programma esegue questo codice, il risultato ottenuto è il seguente:

Questo risultato è corretto 
Questo era prevedibile 

Il risultato rimarrebbe invariato senza l’istruzione pass, ma allo stesso tempo il codice sarebbe più breve e quindi più chiaro. Quindi, anche se la presenza di pass in Python non fa alcuna differenza, sarebbe sempre meglio evitare di usarlo in maniera indiscriminata. Invece, utilizzate questa istruzione solo in quei punti che altrimenti sarebbero più soggetti a errori.