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

Bob*_*ver 4 python keyword python-internals

__debug__是一个内置常量,根据常量文档,它似乎不是一个实现细节.

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

>>> __debug__ = False
  File "<stdin>", line 1
SyntaxError: assignment to keyword
Run Code Online (Sandbox Code Playgroud)

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

>>> from keyword import kwlist
>>> '__debug__' in kwlist
False
Run Code Online (Sandbox Code Playgroud)

这似乎很奇怪.None,True并且False,也列为常量,包含在kwlist.

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

use*_*ica 5

从技术上讲,它不是Python语法意义上的关键字.在编译器中有一个特定的检查阻止赋值__debug__,但就语法而言,__debug__它不是关键字,keyword.kwlist而是从语法生成的.