Outre son utilisation comme espace réservé pour les fonctions non implémentées, passpeut être utile pour remplir une instruction if-else ("Explicit vaut mieux qu'implicite.")
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
Bien sûr, dans ce cas, on utiliserait probablement returnau lieu d'une affectation, mais dans les cas où une mutation est souhaitée, cela fonctionne mieux.
L'utilisation de passici est particulièrement utile pour avertir les futurs responsables (y compris vous-même!) De ne pas mettre des étapes redondantes en dehors des instructions conditionnelles. Dans l'exemple ci-dessus, flagest défini dans les deux cas spécifiquement mentionnés, mais pas dans le cas else. Sans utilisation pass, un futur programmeur pourrait se déplacer flag = Trueen dehors de la condition, ce qui se produira flagdans tous les cas.
Un autre cas est avec la fonction passe-partout souvent vue au bas d'un fichier:
if __name__ == "__main__":
pass
Dans certains fichiers, il peut être judicieux de laisser cela passpour permettre une édition plus facile plus tard, et pour rendre explicite que rien ne devrait se produire lorsque le fichier est exécuté seul.
Enfin, comme mentionné dans d'autres réponses, il peut être utile de ne rien faire lorsqu'une exception est interceptée:
try:
n[i] = 0
except IndexError:
pass
passserait utile lorsque vous souhaitez remplacer une méthode dans une sous-classe pour ne rien faire.