为什么Python在“pass”之后继续评估代码?

问题描述 投票:0回答:3

我在python中发现了一段有趣的代码:

def x(cond):
    if cond:
        pass
        print('Still running!')

x(True)

我希望这不会打印任何东西,但它打印了

Still running!
。这里发生了什么?

python python-3.x
3个回答
10
投票

根据 Python 文档:

pass
是一个空操作——执行时,什么也没有发生。

来源 - https://docs.python.org/3/reference/simple_stmts.html#pass

因此,

pass
不会执行任何操作,
pass
之后的所有语句仍将被执行。

思考这个问题的另一种方式是

pass
相当于任何虚拟语句:

def x(cond):
    if cond:
        "dummy statement"
        print('Still running!')

4
投票

pass 并不意味着“离开该功能”,它只是意味着......什么都没有。将其视为一个占位符,表示您没有在那里执行任何操作(例如,如果您尚未实现某些操作)。 https://docs.python.org/3.5/tutorial/controlflow.html#pass-statements

如果要退出该功能,只需

return
return None

顺便说一句,其他有用的语句是

break
退出最新的循环和
continue
退出循环的当前迭代并直接进入下一个循环。


0
投票

Pass 不执行任何操作。当程序到达那里时,它会说“好吧,跳过这个!”。

Pass可以用来提前定义函数。例如,

def function_somebody_is_going_to_write_later():
    pass

def function_I_am_going_to_write_later():
    pass

这样您就可以编写一个包含其他人稍后可能会使用的函数的文件,并且您现在仍然可以执行该文件。

© www.soinside.com 2019 - 2024. All rights reserved.