在python中执行no-op的标准方法是什么?

时间:2009-03-27 17:04:20

标签: python

我经常发现自己在python中编写if / elif / else构造,并且我希望包含可能发生的选项,但相应的操作不执行任何操作。我意识到我可以排除那些if语句,但为了便于阅读,我发现将它们全部包含在内是有帮助的,所以如果你查看代码,你可以看到每个选项会发生什么。如何编写no-op?目前,我这样做:

no_op = 0

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

(代码实际上比这长得多,而且更复杂。这只是为了说明结构)。

我不喜欢将变量用作无操作,但这是我能想到的最好方法。还有更好的方法吗?

4 个答案:

答案 0 :(得分:251)

使用pass进行无操作:

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

这是另一个例子:

def f():
  pass

或者:

class c:
  pass

答案 1 :(得分:23)

pass怎么样?

答案 2 :(得分:9)

如果您需要一个像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()

答案 3 :(得分:0)

我办公桌上的一个简单练习就是使用这样的一行:

dummy = 0

普通程序员(甚至那些来自其他常见编程语言的程序员)会立即理解它。