我在python中发现了一段有趣的代码:
def x(cond):
if cond:
pass
print('Still running!')
x(True)
我希望这不会打印任何内容,但会打印Still running!
。这里发生了什么?
答案 0 :(得分:8)
根据Python文档:
pass
是一个空操作 - 当它被执行时,没有任何反应。
来源 - https://docs.python.org/3.5/reference/simple_stmts.html#pass
因此,pass
不执行任何操作,pass
之后的所有语句仍将执行。
另一种思考方式是pass
等同于任何虚拟陈述:
def x(cond):
if cond:
"dummy statement"
print('Still running!')
答案 1 :(得分:4)
传递并不意味着“离开功能”,它只是意味着......没有。将其视为占位符,表示您不在那里做任何事情(例如,如果您还没有实现某些内容)。 https://docs.python.org/3.5/tutorial/controlflow.html#pass-statements
如果您要退出该功能,只需return
或return None
顺便说一句其他有用的语句break
退出最新的循环,continue
退出循环的当前迭代并直接转到下一循环。
答案 2 :(得分:0)
通行证什么也没做。当程序到达那里时,它会说“好吧跳过这个!”。
Pass可以用于提前定义函数。例如,
def function_somebody_is_going_to_write_later():
pass
def function_I_am_going_to_write_later():
pass
这样你就可以编写一个文件,其中包含其他人可能会在以后工作的功能,你现在仍然可以执行该文件。