在python中使用pass语句的位置?如何有效地使用pass语句?

时间:2014-02-26 08:24:47

标签: python

我无法理解在Python中使用pass语句。

我找到了一些示例代码here,其中有一个pass语句,但我无法弄清楚它在这种情况下有用:

for letter in 'Python': 
    if letter == 'h':
        pass
        print 'This is pass block'
    print 'Current Letter :', letter

3 个答案:

答案 0 :(得分:7)

传递是Python中的NOP。它对效率没有影响。它仅用作语法占位符来标记空块。

您可以使用dis module查看使用pass-statement时生成的代码没有差异:

>>> from dis import dis
>>> def f(x):
    return x

>>> dis(f)
  2           0 LOAD_FAST                0 (x)
              3 RETURN_VALUE      

现在,再次添加了一个pass语句:

>>> def f(x):
    pass
    return x

>>> dis(f)
  3           0 LOAD_FAST                0 (x)
              3 RETURN_VALUE        

请注意,生成的代码与pass语句没有区别。

希望有所帮助。祝你好运: - )

答案 1 :(得分:5)

pass语句是一个空语句。它什么都没做。你使用它的方式,没有任何区别。

pass主要用作占位符语句。假设您有一个计划稍后实现的功能。好吧,你不能把它留空,因为这是不正确的语法。因此,您使用pass

def spam():
    pass # i'll implement this later

类似的用法是在空循环中。

for i in xrange(10):
    pass # just add some delay maybe?

答案 2 :(得分:1)

当我们在循环区域中无所事事,然后运行程序时,我们将收到错误消息。要消除此错误,我们可以使用pass语句。error

for i in range(5):  # when we execute this code we find error.


for i in range(5):  # no error
    pass