Types: 3. Comparisons
3. Comparisons
所有对象都支持比较操作。它们都具有相同的优先级(这比布尔操作的优先级高)。比较可以任意链接; 例如x < y <= z
等同于x < y and y <= z
,除了y只被评估一次(但是在两种情况下,当zx < y
被发现为假时根本不被评估)。
本表总结了比较操作:
手术 | 含义 | 笔记 |
---|---|---|
< | 严格小于 | |
<= | 小于或等于 | |
严格大于 | | |
= | 大于或等于 | |
== | 等于 | |
!= | 不等于 | (1) |
是 | 对象身份 | |
不是 | 否定对象身份 | |
注释:
!=
也可以编写<>
,但这是为了向后兼容而保留的过时使用。新代码应该始终使用!=
。
不同类型的对象,除了不同的数字类型和不同的字符串类型,永远不会相等; 这样的对象排序一致但任意(排序异构数组产生一致的结果)。此外,某些类型(例如,文件对象)仅支持简单的比较概念,其中任何两个类型的对象都不相等。再次,这样的对象是任意排列但一致的。的<
,<=
,>
和>=
运营商将提高一个TypeError
当任何操作数是复数例外。
CPython实现细节:除数字以外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序。
具有相同优先级的语法两个操作,in
并且not in
,只能通过序列类型(下)的支持。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com