2009-03-27 9 views
111

A menudo me encuentro escribiendo constructos if/elif/else en python, y quiero incluir opciones que pueden ocurrir, pero cuya acción correspondiente es no hacer nada. Me doy cuenta de que podría simplemente excluir esas declaraciones if, pero para la legibilidad me parece útil incluirlas todas, de modo que si miras el código, puedes ver lo que sucede como resultado de cada opción. ¿Cómo codigo el no-op? Actualmente, estoy haciendo de esta manera:¿Cuál es una forma estándar de hacer una operación no operativa en Python?

no_op = 0 

if x == 0: 
    y = 2 * a 
elif x == 1: 
    z = 3 * b 
elif x == 3: 
    no_op 

(. El código es en realidad un poco más que eso, y más complicado Esto es sólo para ilustrar la estructura).

No me gusta usar una variable como no operativa, pero es la mejor manera que se me ocurre. ¿Hay una mejor manera?

+0

Esta elipsis ('...') también merece una mención: http://stackoverflow.com/a/6189281/38281 – Patrick

Respuesta

217

Uso pass para no-op:

if x == 0: 
    pass 
else: 
    print "x not equal 0" 

Y aquí está otro ejemplo:

def f(): 
    pass 

O:

class c: 
    pass 
+0

Que k tu! Eso es lo que estaba buscando. – Ben

+3

+1: Consulte la documentación –

+3

Como una línea, utilizo 'doSQL = lambda * x: x'. –

22

¿Qué tal pass?

3

Si necesita una función que se comporta como un NOP, tratan

nop = lambda *a, **k: None 
nop() 

veces hago cosas como esta cuando estoy haciendo dependencias opcionales:

try: 
    import foo 
    bar=foo.bar 
    baz=foo.baz 
except: 
    bar=nop 
    baz=nop 

# Doesn't break when foo is missing: 
bar() 
baz() 
+0

nop = lambda * x: ninguna –

Cuestiones relacionadas