In Python, pass è un se­gna­po­sto che impedisce al programma di emettere un messaggio di errore. Grazie a questa istru­zio­ne la sintassi rimane invariata.

Cos’è pass in Python?

In­nan­zi­tut­to, l’istru­zio­ne pass in Python viene uti­liz­za­ta come se­gna­po­sto senza altre funzioni di base. In alcune cir­co­stan­ze, può essere im­por­tan­te inserire nel codice una di­chia­ra­zio­ne che indichi al programma di con­ti­nua­re l’ese­cu­zio­ne, così da evitare in­con­ve­nien­ti con questo lin­guag­gio di pro­gram­ma­zio­ne. Un esempio tipico di questo caso è il codice in cui è già stato creato un posto per una funzione, ma non è ancora stato im­ple­men­ta­to o elaborato. Se si lascia il corpo vuoto, viene ri­pro­dot­to un messaggio di errore. A impedire che ciò si verifichi ci pensa pass. In seguito, il se­gna­po­sto può essere so­sti­tui­to dalla funzione vera e propria e il codice rimane corretto.

Come viene uti­liz­za­to pass in Python?

L’istru­zio­ne pass in Python è sem­pli­ce­men­te espressa dal comando pass e uti­liz­za­ta all’interno del blocco di codice. So­prat­tut­to nei cicli, per i quali non è ancora stata definita una de­ter­mi­na­ta funzione, si utilizza pass. Il se­gna­po­sto viene spesso uti­liz­za­to dopo un’istru­zio­ne if. Si presenta in questo modo:

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

In Python, pass può anche venire combinato con altre di­chia­ra­zio­ni.

Come funziona pass in Python?

Il fun­zio­na­men­to di pass in Python, ad esempio in un ciclo, è in qualche modo simile a quello di un’ope­ra­zio­ne di polizia che regola il traffico e lo dirige oltre il luogo dell’incidente. Il programma inizia il primo passaggio, interroga una con­di­zio­ne definita e verifica se è vera o falsa e procede di con­se­guen­za. Tuttavia, se lo svi­lup­pa­to­re o la svi­lup­pa­tri­ce non ha inserito una con­se­guen­za in questo punto, il programma emette un errore. L’istru­zio­ne pass ora guida il programma oltre questo “incidente” e ga­ran­ti­sce che la query possa con­ti­nua­re a essere eseguita senza in­ter­ru­zio­ni.

Pass in Python in un ciclo for

Grazie agli esempi, vedete ra­pi­da­men­te a cosa serve l’istru­zio­ne pass in Python e quali sono i vantaggi di questa istru­zio­ne. 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 con­di­zio­ne di ter­mi­na­zio­ne è che il numero non deve diventare maggiore o uguale a 10. Uti­liz­zan­do un’istru­zio­ne if else in Python si inserisce nor­mal­men­te una re­stri­zio­ne non appena il contatore raggiunge 8. Tuttavia, pass elimina questa re­stri­zio­ne e dice al programma di con­ti­nua­re.

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 nor­mal­men­te e abbia contato da 0 a 9 senza in­ter­ru­zio­ni. Tuttavia, se aveste omesso pass a questo punto, l’istru­zio­ne if sarebbe stata in­com­ple­ta e il programma avrebbe prodotto un errore. Di con­se­guen­za, pass in Python non viene sem­pli­ce­men­te ignorato; invece, l’istru­zio­ne indica al programma di non prendere in con­si­de­ra­zio­ne la riga corrente (in­com­ple­ta) e di con­cen­trar­si sulle di­chia­ra­zio­ni suc­ces­si­ve.

Pass in Python in un ciclo while

L’istru­zio­ne pass in Python può essere uti­liz­za­ta anche in un semplice ciclo while in Python, che già co­no­sce­re­te da un tutorial su Python. In questo esempio, il ciclo deve ve­ri­fi­ca­re se un numero è inferiore a 5. Poiché la con­se­guen­za (else) non è ancora definita, il programma ri­le­ve­reb­be un errore quando viene eseguito non appena il numero è uguale o superiore a 5, e quindi emet­te­reb­be un errore. Con pass, invece, il programma può essere sem­pli­ce­men­te 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 pro­gram­ma­zio­ne web. È utile se la classe è già stata creata, ma non se ne conoscono ancora tutti i contenuti. In questo esempio, si devono di­stin­gue­re i veicoli che entrano in un cortile. Mentre per le auto e i camion esistono già istru­zio­ni concrete, non ce ne sono per le bi­ci­clet­te. 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 dif­fe­ren­ze tra break e continue

Sebbene pass in Python sia simile alle istru­zio­ni break e continue, ci sono anche alcune dif­fe­ren­ze fon­da­men­ta­li. Tutte e tre le di­chia­ra­zio­ni hanno lo scopo di evitare che un ciclo o un programma commetta errori. Tuttavia, mentre pass si limita a garantire che il programma possa con­ti­nua­re cor­ret­ta­men­te, break e continue in­ter­ven­go­no in modo molto più completo nel processo. L’istru­zio­ne break assicura che un ciclo venga terminato com­ple­ta­men­te se una con­di­zio­ne in­ter­me­dia non è più sod­di­sfat­ta prima della sua fine. La di­chia­ra­zio­ne continue fa sì che un ciclo venga in­ter­rot­to in cor­ri­spon­den­za di un de­ter­mi­na­to evento esterno e che venga poi con­ti­nua­to. Per saperne di più, con­sul­ta­te l’articolo dedicato a break e continue in Python.

Uso non ne­ces­sa­rio di pass in Python

Poiché pass in Python non richiede di fare pra­ti­ca­men­te nulla al programma, in alcuni casi l’istru­zio­ne è superflua. Anche se il suo uso non è sbagliato, se questa istru­zio­ne 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 ri­mar­reb­be invariato senza l’istru­zio­ne 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 dif­fe­ren­za, sarebbe sempre meglio evitare di usarlo in maniera in­di­scri­mi­na­ta. Invece, uti­liz­za­te questa istru­zio­ne solo in quei punti che al­tri­men­ti sarebbero più soggetti a errori.

Vai al menu prin­ci­pa­le