gpt4 book ai didi

python - 为什么 True 和 False 在 Python 3 中改为关键字

转载 作者:IT老高 更新时间:2023-10-28 21:42:22 25 4
gpt4 key购买 nike

在 Python 2 中,我们可以重新分配 TrueFalse(但不是 None),但所有三个(TrueFalseNone) 被视为内置变量。然而,在 Py3k 中,这三个都被更改为关键字,根据 the docs .

根据我自己的猜测,我只能猜测是为了防止像 this 这样的恶作剧。它源自旧的 True, False = False, True 恶作剧。然而,在 Python 2.7.5 中,或许在之前版本中,像 None = 3 这样重新分配 None 的语句会引发 SyntaxError: cannot assign to None

在语义上,我不相信 TrueFalseNone 是关键字,因为它们最终是语义文字,即Java 做了什么。我检查了 PEP 0(索引),但找不到 PEP 来解释它们被更改的原因。

将它们设为关键字而不是字面量或像 python2 中的 None 那样特殊封装它们是否有性能优势或其他原因?

最佳答案

可能是因为 Python 2.6 不仅允许 True = False 还允许你说一些有趣的话,比如:

__builtin__.True = False

这会将整个过程的 True 重置为 False。它可能导致发生非常有趣的事情:

>>> import __builtin__
>>> __builtin__.True = False
>>> True
False
>>> False
False
>>> __builtin__.False = True
>>> True
False
>>> False
False

编辑:正如 Mike 所指出的那样, Python wiki 核心语言更改下还声明了以下内容:

  • 制作 True 和 False 关键字。
    • 原因:无法分配给他们。

关于python - 为什么 True 和 False 在 Python 3 中改为关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com