Python中True/False可互换赋值吗?为何用表达式定义TRUE/FALSE?
哇,看到这种代码确实会愣一下!我来拆解一下你的两个疑问:
为什么有人要通过表达式定义
TRUE/FALSE? 说实话,这种写法第一眼看到确实有点迷惑,但背后其实可能有这些原因:
- 兼容旧版Python:在Python 2.3之前,语言本身并没有内置
True和False这两个布尔常量,开发者通常会自己定义大写的版本来表示布尔值。用1 == 1和0 == 1这种表达式赋值,本质上和直接写TRUE = 1或者(如果版本支持)TRUE = True是一样的,但这样写更直观地体现了布尔值的“真/假”本质,还能避免手动赋值出错(比如不小心写成TRUE = 0)。 - 跨语言代码风格统一:很多其他编程语言(比如C、Java)里的布尔常量是大写的
TRUE/FALSE,有些开发者为了让Python代码和其他项目的风格保持一致,会刻意定义这类变量,哪怕Python本身有原生的小写版本。 - 个人编码习惯或小技巧展示:也不排除是开发者的个人习惯,或者是一种有点巧妙的写法——用恒成立/恒不成立的表达式生成布尔值,看起来比直接赋值数字更有“布尔感”,算是一种小趣味吧。
Python中的
True和False能被重新赋值吗? 这个得分Python版本来看:
- Python 2.x:在Python 2里,
True和False并不是关键字,只是内置的全局变量,所以是可以被重新赋值的。比如你可以执行:
但这种做法极度不推荐,会彻底打乱代码的逻辑,属于典型的不良编码实践。True = False print(True) # 输出 False - Python 3.x:从Python 3开始,
True和False被正式定为关键字,完全不能被重新赋值。如果你尝试修改它们,会直接抛出语法错误:True = False # 报错:SyntaxError: cannot assign to True
内容的提问来源于stack exchange,提问作者d-coder




