python中的布尔值为true_关于布尔值:在Python中为True定义值时的奇怪行为

在Python中,尽管可以将变量True赋值为其他对象,如字符串'abc',但这并不影响布尔运算结果。布尔表达式如(1==1)仍会返回内置的布尔值True,而不是赋值后的True。这是因为存在两个不同的True:一个是布尔值,另一个是被重新定义的变量。这种行为揭示了Python中名称空间和内置值的工作原理。
摘要由CSDN通过智能技术生成

这不是一个实际的问题-我只是对观察到的某些奇怪行为感到好奇,并想知道我是否正确理解" is"运算符。

这是一些可预测的Python解释器输出:

>>> True is True

True

>>> (1==1) is True

True

现在让我们定义一个名为True的变量:

>>> True = 'abc'

>>> True == 'abc'

True

>>> True is 'abc'

True

对于布尔运算,解释器仍将返回" True",但是布尔运算的结果被认为既不等于" abc"也不等于True。

>>> (1==1)

True

>>> (1==1) is 'abc'

False

>>> (1==1) is True

False

谁能解释这个奇怪的行为?

奇怪的是True不是保留关键字(或任何Python拥有的)。

@iamnotmaynard:True已成为Python 3中的关键字,并且该赋值将引发SyntaxError: assignment to keyword。

大多数内置的arent关键字...您几乎可以将所有值重新分配。 值得庆幸的是,它们通常是本地的,因此当一个粗心的程序员在其函数中执行此操作时ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值