3. Comparisons
所有對象都(dōu)支持比較操作(zuò)。它們都(dōu)具有相同的優先級(這(zhè)比布爾操作(zuò)的優先級高)。比較可(kě)以任意鏈接; 例如(rú)x < y <= z等同于x < y and y <= z,除了(le)y隻被評估一(yī)次(但(dàn)是在兩種情況下(xià),當zx < y被發現為(wèi)假時(shí)根本不被評估)。
本表總結了(le)比較操作(zuò):
手術(shù) | 含義 | 筆(bǐ)記 |
---|---|---|
< | 嚴格小于 | |
<= | 小于或等于 | |
嚴格大于 | | |
= | 大于或等于 | |
== | 等于 | |
!= | 不等于 | (1) |
是 | 對象身份 | |
不是 | 否定對象身份 | |
注釋:
!=也可(kě)以編寫<>,但(dàn)這(zhè)是為(wèi)了(le)向後兼容而保留的過時(shí)使用。新代碼應該始終使用!=。
不同類型的對象,除了(le)不同的數(shù)字類型和(hé)不同的字符串類型,永遠不會相等; 這(zhè)樣的對象排序一(yī)緻但(dàn)任意(排序異構數(shù)組産生一(yī)緻的結果)。此外(wài),某些類型(例如(rú),文件對象)僅支持簡單的比較概念,其中任何兩個類型的對象都(dōu)不相等。再次,這(zhè)樣的對象是任意排列但(dàn)一(yī)緻的。的<,<=,>和(hé)>=運營商将提高一(yī)個TypeError當任何操作(zuò)數(shù)是複數(shù)例外(wài)。
除非類定義__eq__()方法或__cmp__()方法,否則通(tōng)常将類的不同實例比較為(wèi)不相等。
一(yī)個類的實例不能(néng)相對于同一(yī)類的其他(tā)實例,或其他(tā)類型的對象進行(xíng)排序,除非類定義要(yào)麽足夠的富比較方法(__lt__(),__le__(),__gt__(),和(hé)__ge__())或__cmp__()方法。
糾錯
CPython實現細節:除數(shù)字以外(wài)的不同類型的對象按其類型名稱排序; 不支持正确比較的相同類型的對象按其地(dì)址排序。
具有相同優先級的語法兩個操作(zuò),in并且not in,隻能(néng)通(tōng)過序列類型(下(xià))的支持。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發