You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中True/False可互换赋值吗?为何用表达式定义TRUE/FALSE?

哇,看到这种代码确实会愣一下!我来拆解一下你的两个疑问:

为什么有人要通过表达式定义TRUE/FALSE

说实话,这种写法第一眼看到确实有点迷惑,但背后其实可能有这些原因:

  • 兼容旧版Python:在Python 2.3之前,语言本身并没有内置TrueFalse这两个布尔常量,开发者通常会自己定义大写的版本来表示布尔值。用1 == 10 == 1这种表达式赋值,本质上和直接写TRUE = 1或者(如果版本支持)TRUE = True是一样的,但这样写更直观地体现了布尔值的“真/假”本质,还能避免手动赋值出错(比如不小心写成TRUE = 0)。
  • 跨语言代码风格统一:很多其他编程语言(比如C、Java)里的布尔常量是大写的TRUE/FALSE,有些开发者为了让Python代码和其他项目的风格保持一致,会刻意定义这类变量,哪怕Python本身有原生的小写版本。
  • 个人编码习惯或小技巧展示:也不排除是开发者的个人习惯,或者是一种有点巧妙的写法——用恒成立/恒不成立的表达式生成布尔值,看起来比直接赋值数字更有“布尔感”,算是一种小趣味吧。
Python中的TrueFalse能被重新赋值吗?

这个得分Python版本来看:

  • Python 2.x:在Python 2里,TrueFalse并不是关键字,只是内置的全局变量,所以是可以被重新赋值的。比如你可以执行:
    True = False
    print(True)  # 输出 False
    
    但这种做法极度不推荐,会彻底打乱代码的逻辑,属于典型的不良编码实践。
  • Python 3.x:从Python 3开始,TrueFalse被正式定为关键字,完全不能被重新赋值。如果你尝试修改它们,会直接抛出语法错误:
    True = False
    # 报错:SyntaxError: cannot assign to True
    

内容的提问来源于stack exchange,提问作者d-coder

火山引擎 最新活动