2009-03-27 1 views
111

Я часто нахожу себя писателем, если/elif/else строит в python, и я хочу включить параметры, которые могут произойти, но для которых соответствующее действие ничего не должно делать. Я понимаю, что могу просто исключить эти операторы if, но для удобства чтения я считаю, что это помогает включить их все, так что, если вы просматриваете код, вы можете увидеть, что происходит в результате каждой опции. Как мне закодировать no-op? В настоящее время я делаю это так:Что такое стандартный способ сделать no-op в python?

no_op = 0 

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

(. Код на самом деле совсем немного дольше, и сложнее Это просто для иллюстрации структуры).

Мне не нравится использовать переменную как нет-op, но это самый чистый способ, о котором я мог думать. Есть ли способ лучше?

+0

Это многоточие ('...') также заслуживает упоминания: http://stackoverflow.com/a/6189281/38281 – Patrick

ответ

217

Использование pass для не-оп:

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

А вот еще один пример:

def f(): 
    pass 

Или:

class c: 
    pass 
+0

Than К вам! Это то, что я искал. – Ben

+3

+1: Ссылка на документацию –

+3

Как однострочный, я использую 'doSQL = lambda * x: x'. –

3

Если вам нужна функция, которая ведет себя как NOP, попробуйте

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

Иногда я делаю вещи, как это, когда я делаю зависимостей по выбору:

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: Нет –

Смежные вопросы