在Python 2中,我们可以重新分配True和False(但不包括None),但所有这三个(True,False,和None)被认为是内置变量.然而,在Py3k所有三个分别更改为关键字按该文档.
根据我自己的推测,我只能猜测这是为了防止像这样的True, False = False, True恶作剧来自旧的恶作剧.但是,在Python 2.7.5中,也许在之前,None = 3重新分配的语句None引发了SyntaxError: cannot assign to None.
在语义上,我不相信True,False并且None是关键词,因为它们最后是语义文字,这就是Java所做的.我检查了PEP 0(索引),我找不到PEP解释它们被改变的原因.
是否有性能优势或其他原因使它们成为关键字而不是文字或特殊None包装它们就像在python2中?
dev*_*ull 45
可能是因为Python 2.6不仅允许,True = False而且还允许你说出有趣的事情:
__builtin__.True = False
Run Code Online (Sandbox Code Playgroud)
这将重置True到False整个过程.它可以导致真正有趣的事情发生:
>>> import __builtin__
>>> __builtin__.True = False
>>> True
False
>>> False
False
>>> __builtin__.False = True
>>> True
False
>>> False
False
Run Code Online (Sandbox Code Playgroud)
编辑:正如迈克所指出的,Python维基也在核心语言变化下声明了以下内容:
Kro*_*tan 11
主要有两个原因:
__builtin__.True = False在随机模块上隐藏恶作剧.(由devnull解释)| 归档时间: |
|
| 查看次数: |
6981 次 |
| 最近记录: |