“是”运算符结果:发生了什么?

新手上路,请多包涵

当我很惊讶

[] is not []

评估为 True

这段代码中发生了什么?真正 notis 语句在做什么?

原文由 fjsj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 385
2 个回答

a is not b 是一个特殊的运算符,相当于 not a is b

如果 a 和 b 绑定到同一个对象,运算符 a is b 返回 True,否则返回 False。当您创建两个空列表时,您会得到两个不同的对象,因此 is 返回 False(因此 is not 返回 True)。

原文由 Mark Byers 发布,翻译遵循 CC BY-SA 2.5 许可协议

is 是身份比较。

== 是相等比较。

您的声明正在制作两个不同的列表并检查它们是否是同一实例,而它们不是。如果您使用 == 它将返回 true 并且因为它们都是空列表。

原文由 unholysampler 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏