Además de su uso como marcador de posición para funciones no implementadas, pass
puede ser útil para completar una instrucción if-else ("explícito es mejor que implícito").
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
Por supuesto, en este caso, uno probablemente usaría en return
lugar de la asignación, pero en los casos en que se desea la mutación, esto funciona mejor.
El uso de pass
aquí es especialmente útil para advertir a los futuros mantenedores (¡incluido usted mismo!) De no poner pasos redundantes fuera de las declaraciones condicionales. En el ejemplo anterior, flag
se establece en los dos casos mencionados específicamente, pero no en el else
caso. Sin usar pass
, un futuro programador podría moverse flag = True
fuera de la condición, configurando así flag
en todos los casos.
Otro caso es con la función repetitiva que a menudo se ve al final de un archivo:
if __name__ == "__main__":
pass
En algunos archivos, puede ser bueno dejar eso allí pass
para permitir una edición más fácil más adelante y hacer explícito que no se espera que suceda nada cuando el archivo se ejecuta por sí solo.
Finalmente, como se menciona en otras respuestas, puede ser útil no hacer nada cuando se detecta una excepción:
try:
n[i] = 0
except IndexError:
pass
pass
que sería útil cuando desea anular un método en una subclase para no hacer nada.