为什么“[]是[]在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |