Python pass: ¿cómo funciona el marcador de posición?
Python pass es un marcador de posición que evita que el programa emita un mensaje de error. La sentencia conserva la sintaxis.
¿Qué es Python pass?
En primer lugar, Python pass funciona como un marcador de posición sin ninguna función básica adicional. En algunas circunstancias te puede hacer falta introducir una sentencia en el código que haga que el programa siga ejecutándose. Esta sentencia evita problemas en Python. Un ejemplo típico de aplicación es el código en el que ya se ha creado un lugar para una función, pero aún no está implementada o todavía no se ha creado. Si dejaras esta parte del cuerpo del código vacía recibirías un mensaje de error en la pantalla. Python pass evita que esto suceda. Más adelante, el marcador de posición puede ser sustituido por la función real y el código seguirá funcionando correctamente.
¿Cómo se utiliza Python pass?
Python pass se expresa simplemente con el comando pass y se utiliza dentro del bloque de código. Python pass se utiliza especialmente en los bucles a los que aún no se les ha asignado una determinada función. El marcador de posición se utiliza a menudo después de una sentencia if. Tiene el siguiente aspecto:
if some_condition:
print("Condition encountered")
else:
pass
Python pass también puede combinarse con otras sentencias.
¿Cómo funciona Python pass?
El funcionamiento de Python pass, por ejemplo, en un bucle, es algo parecido al de un operativo policial que regula el tráfico y lo redirige para que evite el lugar de un accidente. El programa comienza la primera pasada, consulta una condición definida y comprueba si es true (es decir, verdadera) o false (es decir, falsa) y actúa en consecuencia. Sin embargo, si el desarrollador del código no ha introducido una consecuencia en dicho nivel, entonces el programa emitirá un error. Pero, al haber un Python pass, el programa evita este “accidente” y permite que la consulta se siga ejecutando sin interrupciones.
Python pass en un bucle for
Con los ejemplos adecuados vas a poder ver fácilmente para qué se usa Python pass y cuáles son sus ventajas. En el primer ejemplo vamos a crear una serie numérica con un bucle for de Python. Para ello, el programa va a contar de 0 en adelante. La condición que hace que el bucle termine es que el número no sea mayor o igual a 10. Utilizando una sentencia if else de Python el desarrollador quiere insertar una condición cuando el contador llegue a 8. Sin embargo, hasta que el desarrollador decida introducir dicha condición Python pass permite que el programa continúe con su trabajo y, a la vez, mantenga su estructura.
for num in range(10):
if num == 8:
pass
print(f"El número actual es: {num}")
print("La cuenta ha terminado")
El resultado es el siguiente:
El número actual es: 0
El número actual es: 1
El número actual es: 2
El número actual es: 3
El número actual es: 4
El número actual es: 5
El número actual es: 6
El número actual es: 7
El número actual es: 8
El número actual es: 9
La cuenta ha terminado
Observando la salida parece que el bucle se ha ejecutado con normalidad y ha contado de 0 a 9 sin interrupción. Sin embargo, si no hubieras introducido la sentencia pass donde debías, el bucle if estaría incompleto y el programa habría dado error. Así que tampoco es que se ignore la sentencia Python pass: en lugar de ser ignorada, la sentencia simplemente le dice al programa que omita dicha línea (incompleta) y que se centre en las siguientes líneas de código.
Python pass en un bucle while
Python pass también se puede utilizar en un simple bucle while de Python, que ya conocemos del tutorial de Python. En este ejemplo, el bucle debe comprobar si un número es menor que 5. Dado que la consecuencia (else) aún no está definida, el programa detectaría un error al intentar leerla, en cuanto el número fuera igual o mayor que 5, y emitiría un error. En cambio, Python pass va a permitir que el programa omita la falta de código en else y siga ejecutándose.
counter = 0
while counter < 5:
print(f"El número {counter} es inferior a 5")
counter = counter + 1
else:
pass
Python pass en una clase
Python pass también funciona dentro de una clase del lenguaje de programación web. Esto es útil si ya has creado la clase, pero aún no sabes todo el contenido que le quieres dar. En este ejemplo, el objetivo es distinguir los vehículos que entran en un recinto. Mientras que ya existen directrices específicas para los coches y los camiones, las bicicletas carecen de directriz alguna. El código tiene el siguiente aspecto:
class Vehículo:
def Coche(self):
print("Ha entrado un coche en el recinto")
def furgoneta(self):
print("Ha entrado una furgoneta en el recinto")
def Bicicleta(self):
pass
Diferencias con break y continue
Aunque Python pass es similar a las sentencias break y continue, también hay algunas diferencias muy importantes. Las tres sentencias son idóneas para evitar que un bucle o un programa cometa errores. Sin embargo, mientras que Python pass solo garantiza que el programa pueda continuar correctamente, break y continue intervienen mucho más en el proceso. La sentencia break permite terminar un bucle por completo si una condición intermedia deja de cumplirse antes de su finalización. La sentencia continue permite interrumpir un bucle ante un determinado evento externo y continuar con él más adelante. Puedes leer más sobre estas dos sentencias en el artículo sobre Python break y continue.
Uso innecesario de Python pass
Dado que Python pass básicamente le dice al programa que no haga nada, la sentencia es innecesaria en algunos casos. En estos casos, aunque el uso de Python pass no es incorrecto, si se omitiera la sentencia, el resultado sería idéntico y el código resultante sería más sencillo. Aquí tienes un ejemplo de este tipo de caso:
if 2 + 2 == 4:
print("El resultado es correcto")
pass
print("Esto era de esperar")
Si ejecutamos un programa con este código, el resultado que obtenemos es el siguiente:
El resultado es correcto
Esto era de esperar
El resultado no cambiaría si quitáramos la sentencia pass; al mismo tiempo tu código sería más corto y, por tanto, más sencillo. Conclusión, aunque Python pass aporte poco, no debe utilizarse de forma innecesaria. Utilízalo solamente en aquellos casos en los que, de otro modo, cabría la posibilidad de que se produjera un error.