在Python中,`if False`何时会执行?

4 投票
5 回答
2067 浏览
提问于 2025-04-17 04:50

在浏览一些代码时,我看到这一行:

if False: #shedskin

我知道 Shedskin 是一种把 Python 代码转换成 C++ 代码的工具,但我不太明白这一行的意思。

难道 if False: 不应该永远不会执行吗?这到底是怎么回事呢?

为了提供一些背景信息:

这是整个代码块:

if False: # shedskin
    AStar(SQ_MapHandler([1], 1, 1)).findPath(SQ_Location(1,1), SQ_Location(1,1))

更多背景信息可以在 Google Code 上找到(请向下滚动到最底部)。

5 个回答

3

理论上,它可能会被执行:

True, False = False, True
if False: print 'foo'

但通常情况下,这个做法是用来暂时关闭某段代码的执行。

7

这段代码永远不会被执行。这是一种暂时关闭代码某部分的方法。

7

这段代码不会执行,因为它本来就不应该执行。if False: 这一行的存在就是为了故意阻止下一行代码的执行,因为那段代码的唯一目的是帮助 Shed Skin 推断传给 AStar() 函数的参数类型。

你可以在 这个链接中看到另一个例子,来自 httplib

#   Useless stuff to help type info
if False :
    conn._set_tunnel("example.com")

撰写回答