4 python constants python-2.7 python-3.x
内置常量,True并且至少在3.3中在Python 3中False是不可修改的:
bool类型的错误值.作业
False是非法的并且提出了SyntaxError.bool类型的真正价值.作业
True是非法的并且提出了SyntaxError.
但是,在python 2.7中,代码True = 0执行时没有任何异常.似乎这些限制很久以前应该被移植到2.x,但它们没有.
我能想到的唯一原因是与现有代码库的兼容性.您是否知道现有软件故意修改True或False?如果没有,还有什么其他原因?
正如Guido在故事情节中所述None,True并且False,在不首先制作True和False关键字的情况下,情境也很重要.当引入bool时(在Python 2.3中使用PEP 285),它无法成为关键字,因为现有的许多代码已经以某种方式定义它:
True/ 的情况False有点不同.他们并不总是语言的一部分,许多人发明了他们自己的惯例.人们会定义名为true和false,True和False,或TRUE和FALSE的常量,并在整个代码中使用这些常量.我不记得哪种拼写最受欢迎,但是当我们将True和False引入语言时,我们绝对不想破坏任何定义自己True和False常量的包.
并继续在后面的段落中说明:
所以,在这种情况下,基本上我们的手被迫,我们必须引入
True和False作为内置常量,而不是关键字.但随着时间的推移,定义自己版本的代码True和False(通过任何名称)的代码变得越来越不受欢迎,当Python 3出现时,当我们查看清理语言的机会时,我们发现它是合乎逻辑的制作True和False关键词,类比None.
你正确地假设:
我能想到的唯一原因是与现有代码库的兼容性.
事实上,情况确实如此.在Python 2版本之间保持向后兼容性的需要是为什么True而False不是那里的关键字.
Python 3的不同之处在于,它为了清理语言而引入了许多向后不兼容的更改,尴尬的重新分配True并且False不再能够完成,谢天谢地.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |