2009-03-27 10 views
111

私はPythonで/ elif/elseが構築されているとよく書いています。私は、起こり得るオプションを含めることを望んでいますが、対応するアクションは何もしません。私はこれらのif文を除外することができたことを理解していますが、読みやすさのために、それらをすべて含めると役立ちます。したがって、コードを調べると、各オプションの結果として何が起こるかを知ることができます。ノーオペレーションをどのようにコードするのですか?現在、私はこのようにそれをやっている:Pythonでノーオペレーションを行うための標準的な方法は何ですか?

no_op = 0 

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

(コードは実際にはかなりそれよりも長く、かつより複雑である。これは、単に構造を示すためです。)。

変数をノーオペレーションとして使用するのは好きではありませんが、私が考えることができる最も素朴な方法です。より良い方法がありますか?無操作のための

+0

この省略記号は、( '...')も言及に値する: http://stackoverflow.com/a/6189281/38281 – Patrick

答えて

217

使用pass

def f(): 
    pass 

または::passについてどのように

class c: 
    pass 
+0

よりあなた!それが私が探していたものです。 – Ben

+3

+1:ドキュメントを参照してください –

+3

1つのライナーとして、私は 'doSQL = lambda * x:x'を使います。 –

22

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

そして、ここでは別の例ですか? passコマンドを参照してください参照の場合

3

、私は依存関係がオプション作っているとき、時々私はこのようなものを行う

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 =ラムダ* x:なし –