加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

为什么“[]是[]在python中评估为False

发布时间:2020-12-20 12:33:57 所属栏目:Python 来源:网络整理
导读:在交互式 python shell中尝试这个. [] is [ ] 以上返回False,为什么? 解决方法 您创建了两个可变对象,然后使用它来查看它们是否是同一个对象.那应该肯定会返回False,否则会被打破. 你永远不会想要在这里回归真实.想象一下,如果你这样做: foo = []bar = []f
在交互式 python shell中尝试这个.

[] is [ ]

以上返回False,为什么?

解决方法

您创建了两个可变对象,然后使用它来查看它们是否是同一个对象.那应该肯定会返回False,否则会被打破.

你永远不会想要在这里回归真实.想象一下,如果你这样做:

foo = []
bar = []
foo.append(42)

如果bar现在包含42,那么你会感到非常惊讶.如果返回true,意味着两个[]调用都返回了完全相同的对象,那么在对bar的引用中可以看到附加到foo.

对于不可变对象,缓存对象是有意义的,此时可能返回true,就像空元组一样:

>>> () is ()  # are these two things the same object?
True

CPython实现优化了空元组创建;你将始终获得完全相同的对象,因为这样可以节省内存并使某些操作更快.因为元组是不可变的,所以这是完全安全的.

如果您希望测试值相等,那么您的操作符错误.改为使用==运算符:

>>> [] == []  # do these two objects have the same value?
True

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读