做自(zì)由與創造的先行者

Types: 3. Comparisons

Python開(kāi)發手冊

3. Comparisons

所有對(duì)象都支持比較操作(zuò)。它們都具有相同的優先級(這(zhè)比布爾操作(zuò)的優先級高(gāo))。比較可以任意鏈接; 例如x < y <= z等同于x < y and y <= z,除了(le)y隻被評估一次(但(dàn)是在兩種情況下(xià),當zx < y被發現(xiàn)爲假時(shí)根本不被評估)。

本表總結了(le)比較操作(zuò):

手術

含義

筆(bǐ)記

<

嚴格小(xiǎo)于

<=

小(xiǎo)于或等于

嚴格大(dà)于

=

大(dà)于或等于

==

等于

!=

不等于

(1)

對(duì)象身份

不是

否定對(duì)象身份

注釋:

!=也(yě)可以編寫<>,但(dàn)這(zhè)是爲了(le)向後兼容而保留的過時(shí)使用(yòng)。新代碼應該始終使用(yòng)!=。

不同類型的對(duì)象,除了(le)不同的數字類型和(hé)不同的字符串類型,永遠不會(huì)相等; 這(zhè)樣的對(duì)象排序一緻但(dàn)任意(排序異構數組産生一緻的結果)。此外(wài),某些(xiē)類型(例如,文(wén)件對(duì)象)僅支持簡單的比較概念,其中任何兩個類型的對(duì)象都不相等。再次,這(zhè)樣的對(duì)象是任意排列但(dàn)一緻的。的<,<=,>和(hé)>=運營商将提高(gāo)一個TypeError當任何操作(zuò)數是複數例外(wài)。

除非類定義__eq__()方法或__cmp__()方法,否則通常将類的不同實例比較爲不相等。

一個類的實例不能(néng)相對(duì)于同一類的其他(tā)實例,或其他(tā)類型的對(duì)象進行排序,除非類定義要麽足夠的富比較方法(__lt__(),__le__(),__gt__(),和(hé)__ge__())或__cmp__()方法。

糾錯

CPython實現(xiàn)細節:除數字以外(wài)的不同類型的對(duì)象按其類型名稱排序; 不支持正确比較的相同類型的對(duì)象按其地址排序。

具有相同優先級的語法兩個操作(zuò),in并且not in,隻能(néng)通過序列類型(下(xià))的支持。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:Types: 4. Numeric Types — int, float, long, complex
上(shàng)一篇:Types: 2. Boolean Operations — and, or, not