为什么可以分配给NotImplemented?

时间:2017-06-15 04:44:59

标签: python-3.x variable-assignment

在Python 3中,您无法分配到TrueFalseNone。但是,至少在CPython上,你可以分配给NotImplemented

>>> False
False
>>> False = 42
SyntaxError: can't assign to keyword                                                                      '
>>> NotImplemented
NotImplemented
>>> NotImplemented = 42
>>> NotImplemented
42

这背后的原因是什么?

1 个答案:

答案 0 :(得分:0)

Python常量enumerated here不是“常量”(可以重新分配),除了那些明确说明:“X的赋值是非法的并引发SyntaxError”。它们是:FalseTrueNone__debug__。这在说明中明确指出:

  

无法重新分配名称NoneFalseTrue__debug__   (对它们的赋值,即使作为属性名称,引发SyntaxError),   所以它们可以被认为是“真正的”常数。

值得注意的是assigning to __debug__ only became illegal in version 2.7以及FalseTrue。在另一个版本中,分配给NotImplemented可能是非法的。