什么时候`if False`在Python中执行?

Joh*_*ohn 4 python

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

if False: #shedskin
Run Code Online (Sandbox Code Playgroud)

据我所知,Shedskin是一种Python - > C++编译器,但我无法理解这一行.

不应该if False:永远不执行?这里发生了什么?

对于上下文:

这是整个块:

if False: # shedskin
    AStar(SQ_MapHandler([1], 1, 1)).findPath(SQ_Location(1,1), SQ_Location(1,1))
Run Code Online (Sandbox Code Playgroud)

Google Code上有更多背景信息(向下滚动).

Kar*_*ath 7

它永远不会被执行.这是临时禁用部分代码的一种方法.

  • 值得注意的是,使用`if 0`实际上会在编译时删除代码路径,而`if False`则不能,因为`False`可以重新分配(至少在Python 2.7中). (2认同)

Tim*_*one 7

它不会执行,因为它不应该执行.在if False:有故意阻止下一行从执行,因为该代码的唯一目的似乎是帮助棚有关参数来推断皮肤类型信息的AStar()功能.

你可以看到这个的另一个例子中httplib:

#   Useless stuff to help type info
if False :
    conn._set_tunnel("example.com")
Run Code Online (Sandbox Code Playgroud)