为什么__debug__不是关键字列表中的关键字?

时间:2017-07-08 19:37:29

标签: python keyword python-internals

__debug__是一个内置常量,根据docs on constants,它似乎不是一个实现细节。

尝试分配给它时(文档状态不支持),会显示以下错误消息:

>>> __debug__ = False
  File "<stdin>", line 1
SyntaxError: assignment to keyword

显然,根据消息,它是一个关键字,但是:

>>> from keyword import kwlist
>>> '__debug__' in kwlist
False

这看起来很奇怪。 NoneTrueFalse也列为常量,包含在kwlist中。

为什么关键字列表中没有__debug__

1 个答案:

答案 0 :(得分:5)

从技术上讲,它不是Python语法意义上的关键字。编译器中有specific check阻止分配给__debug__,但就语法而言,__debug__不是关键字,keyword.kwlist是从语法。