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

新手上路,请多包涵

当我很惊讶

[] is not []

评估为 True

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

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

阅读 379
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 翻译
子站问答
访问
宣传栏