我想我只是目睹了一些非常可怕的东西,而且很难消化!
所以在我的项目中,我遇到了这段美丽的代码
from CoreDefaults import FALSE, TRUE
在查看CoreDefaults模块后,我看到了这一点
TRUE = 1 == 1 # some part of my mind was blown here
FALSE = 0 == 1 # which I honestly thought was clever and it really is!
Run Code Online (Sandbox Code Playgroud)
但后来它提出了一个问题,当python给出默认的True和False时,为什么有人会评估True和False的值然后分配给这些变量但是我得到了预感,任何人都会做的唯一原因是这些值是否可以重新分配!
所以我尝试了以下内容
>>> True
True
>>> False
False
>>> True = False # True is assigned to False and it is NOT OK ?
>>> True
False # Python, I think it's over between you and me.
Run Code Online (Sandbox Code Playgroud)
这种行为是否正常?这是应该实施的方式吗?为什么不让它不可编辑?使用python时这是一个安全风险还是与其他语言一样?任何聪明的方式使它更像不可编辑,就像我需要覆盖的任何内置?我今晚怎么睡着了?
我正在使用python 2.6.6.
编辑1:那么我们可以使用0和1代替False和True吗?我认为这更难以证明了吗?
在Python 2中,True并且False内置"常量".你说它不安全是对的.但是Python实际上并没有常量,所以为了不可能分配不同的值,它们需要是关键字.True并且False是Python 3中的关键字.但是将这些新关键字添加到Python 2本身就具有破坏性.
| 归档时间: |
|
| 查看次数: |
904 次 |
| 最近记录: |