【发布时间】:2013-08-05 17:26:04
【问题描述】:
在 Python 2 中,我们可以重新分配 True 和 False(但不是 None),但所有三个(True、False 和 None)都被视为内置变量。但是,在 Py3k 中,这三个都被更改为 the docs 的关键字。
根据我自己的猜测,我只能猜测这是为了防止像 this 这样源自旧的 True, False = False, True 恶作剧的恶作剧。然而,在 Python 2.7.5 中,或许在之前的版本中,像 None = 3 这样重新分配了 None 的语句引发了 SyntaxError: cannot assign to None。
在语义上,我不相信True、False 和None 是关键字,因为它们最终是语义文字,这就是Java 所做的。我检查了 PEP 0(索引),但找不到 PEP 来解释它们被更改的原因。
将它们设为关键字而不是文字或像 python2 中的 None 那样特殊封装它们是否有性能优势或其他原因?
【问题讨论】: