A menudo me encuentro escribiendo if / elif / else construcciones en python, y quiero incluir opciones que pueden ocurrir, pero para las cuales la acción correspondiente es no hacer nada. Me doy cuenta de que podría excluir esas declaraciones if, pero para facilitar la lectura, creo que es útil incluirlas todas, de modo que si está mirando el código puede ver lo que sucede como resultado de cada opción. ¿Cómo codifico el no-op? Actualmente, lo estoy haciendo así:
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(El código es bastante más largo que eso y más complicado. Esto es solo para ilustrar la estructura).
No me gusta usar una variable como un no-op, pero es la mejor forma en que puedo pensar. ¿Hay una mejor manera?
...
) también merece una mención: stackoverflow.com/a/6189281/38281Respuestas:
Use el pase para no-op:
Y aquí hay otro ejemplo:
O:
fuente
doSQL = lambda *x:x
.else
?pass
no es un valor. Tampoco puedo ver cómo podría ser útil.¿Qué tal
pass
?fuente
Si necesita una función que se comporte como un nop, intente
A veces hago cosas como esta cuando hago las dependencias opcionales:
fuente
nop
en un contexto que requiere específicamente una expresión (versus una declaración arbitraria; qv docs.python.org/3/reference/simple_stmts.html y docs.python.org/3/reference/compound_stmts. html ) - como, por ejemplo, como una sub-expresión a un idioma de código existente como una comprensión, o unlambda
, o (Dios no lo quiera) una cadena para pasareval(…)
(que qv docs.python.org/3/library/functions.html# evalúa si debes).lambda
para asignar una función a una variable para su reutilización es un mal estilo de codificación. Haydef
para eso.Otra forma es con puntos suspensivos:
fuente
None
,136
o"NothingHere"
. Pero el relleno correcto en python espass
.