Oltre al suo uso come segnaposto per funzioni non implementate, passpuò essere utile per compilare un'istruzione if-else ("Esplicito è meglio che implicito").
def some_silly_transform(n):
# Even numbers should be divided by 2
if n % 2 == 0:
n /= 2
flag = True
# Negative odd numbers should return their absolute value
elif n < 0:
n = -n
flag = True
# Otherwise, number should remain unchanged
else:
pass
Naturalmente, in questo caso, si potrebbe probabilmente usare al returnposto del compito, ma nei casi in cui si desidera la mutazione, questo funziona meglio.
L'uso di passqui è particolarmente utile per avvertire i futuri manutentori (incluso te stesso!) Di non mettere passaggi ridondanti al di fuori delle dichiarazioni condizionali. Nell'esempio sopra, flagè impostato nei due casi specificamente menzionati, ma non in else-case. Senza usare pass, un futuro programmatore potrebbe spostarsi flag = Trueal di fuori della condizione, impostando così flagin tutti i casi.
Un altro caso riguarda la funzione boilerplate, spesso visualizzata nella parte inferiore di un file:
if __name__ == "__main__":
pass
In alcuni file, potrebbe essere utile lasciarlo lì passper consentire una modifica più semplice in un secondo momento e rendere esplicito che non dovrebbe succedere nulla quando il file viene eseguito da solo.
Infine, come menzionato in altre risposte, può essere utile non fare nulla quando viene rilevata un'eccezione:
try:
n[i] = 0
except IndexError:
pass
passsarebbe utile quando si desidera sovrascrivere un metodo in una sottoclasse per non fare nulla.