在 Python 2 中,我们可以重新分配True
和False
(但不能None
),但所有三个(True
、、False
和None
)都被认为是内置变量。但是,在 Py3k 中,所有三个都根据文档更改为关键字。
根据我自己的猜测,我只能猜测是为了防止这种旧恶作剧的True, False = False, True
恶作剧。然而,在 Python 2.7.5 中,也许在之前的版本中,诸如None = 3
which reassigned之类的语句None
引发了SyntaxError: cannot assign to None
.
从语义上讲,我不相信True
,False
和None
是关键字,因为它们最终是语义文字,这就是 Java 所做的。我检查了 PEP 0(索引),但找不到 PEP 来解释它们被更改的原因。
是否有性能优势或其他原因使它们成为关键字而不是文字或像None
python2 中的特殊情况?