gpt4 book ai didi

python - 用 '==' 替换 'is' 来比较 bool 值是否安全

转载 作者:IT老高 更新时间:2023-10-28 20:39:05 27 4
gpt4 key购买 nike

我做了几个 bool 比较:

>>> (True or False) is True
True
>>> (True or False) == True
True

听起来 ==is 对于 bool 值是可以互换的。

有时使用 is

会更清楚

我想知道:

TrueFalse 是否在 python 中预先分配?

Is bool(var) 总是返回与预先分配的 True 相同的 True(或 False) >(或)?

== 替换为 is 来比较 bool 值是否安全?


这与最佳实践无关。

我只想知道真相。

最佳答案

您可能永远不需要比较 bool 值。如果你正在做类似的事情:

if some_bool == True:
...

...只需将其更改为:

if some_bool:
...

不需要 is==

正如评论者所指出的,比较 bool 值是有正当理由的。如果两个 bool 值都是未知的,并且您想知道一个是否等于另一个,您应该使用 ==!= 而不是 isis not (原因在下面解释)。请注意,这在逻辑上分别相当于 xnorxor,它们在 Python 中不作为逻辑运算符存在。

在内部,应该只有 two boolean literal objects (另见 C API ),并且 bool(x) is True 应该是 True 如果 bool(x) == True 对于任何 python 程序。两个警告:

  • 并不意味着如果 x == Truex 为真,但是(例如,x = 1)。
  • 这适用于 Python (CPython) 的通常实现,但在其他实现中可能并非如此。因此 == 是更可靠的比较。

关于python - 用 '==' 替换 'is' 来比较 bool 值是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4591125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com