在Python 3中,您无法分配到True
,False
或None
。但是,至少在CPython上,你可以分配给NotImplemented
。
>>> False
False
>>> False = 42
SyntaxError: can't assign to keyword '
>>> NotImplemented
NotImplemented
>>> NotImplemented = 42
>>> NotImplemented
42
这背后的原因是什么?
答案 0 :(得分:0)
Python常量enumerated here不是“常量”(可以重新分配),除了那些明确说明:“X的赋值是非法的并引发SyntaxError”。它们是:False
,True
,None
和__debug__
。这在说明中明确指出:
无法重新分配名称
None
,False
,True
和__debug__
(对它们的赋值,即使作为属性名称,引发SyntaxError), 所以它们可以被认为是“真正的”常数。
值得注意的是assigning to __debug__
only became illegal in version 2.7以及False
和True
。在另一个版本中,分配给NotImplemented
可能是非法的。