2012-09-18 11 views
5

A menudo necesito comentario temporal algo de código, pero hay situaciones como las siguientes, cuando al comentar una sola línea de código obtendrá un error de sintaxis Python NOOP reemplazo

if state == False: 
    print "Here I'm not good do stuff" 
else: 
# print "I am good here but stuff might be needed to implement" 

¿Hay algo que podría actuar como un NOOP para mantener esta sintaxis correcta?

Respuesta

4

Descubrí que si pones el código en tripe citado comentario '''comment''' actúa como un NOOP, por lo que puedes poner un comentario de cita triple que actuará como un NOOP en caso de que el código sea eliminado o comentado con #.

Para el caso anterior:

if state == False: 
    '''this comment act as NOP''' 
    print "Here I'm not good do stuff" 
else: 
    '''this comment act as NOP and also leaves the 
    else branch visible for future implementation say a report or something''' 
# print "I am good here but stuff might be needed to implement" 
+7

Debe usar 'pass' (http://docs.python.org/reference/simple_stmts.html#pass) como el noop. Esto tiene la ventaja de ser breve y no tener ningún significado adicional (la cadena puede ser interpretada de forma no deseada por el programa). – Nobody

+0

@ Nadie ¿Tiene un ejemplo de comportamiento no deseado para saber qué evitar? –

+0

Las cadenas simples deben estar bien, pero debe tener cuidado de no escribir doctests en estas cadenas (si no se desean). Aparte de eso, existe el análisis innecesario de cadenas largas, que serán evaluadas y devueltas para ser ignoradas (quizás esto se optimice). No puedo pensar en más casos que en las esquinas que son muy poco probables pero, no obstante, "pasar" es el camino a seguir porque fue hecho para esta situación. Si usa los comentarios de esta manera, rompe la regla de los comentarios: que se pueden eliminar sin cambiar la semántica de los programas. – Nobody

6

En Python 3, ... hace un buen pass sustituto:

Lo leí como "por hacer", mientras que pass significa "esta página se dejó en blanco intencionalmente".

En realidad es solo literal, como None, True y False, pero se optimizan de todos modos.