Gelagat Python 2 apabila membandingkan objek pelbagai jenis boleh mengelirukan, tetapi ia berdasarkan butiran pelaksanaan yang disediakan oleh spesifikasi bahasa.
Apabila membandingkan objek daripada jenis yang berbeza, Python 2 menggunakan tertib berikut:
Kepada menggambarkan:
print "100" < "2" # True (lexicographic) print "5" > "9" # False (lexicographic) print "100" < 2 # False (numeric first) print 100 < "2" # True (numeric first, lexicographic second) print 5 > "9" # False (lexicographic) print "5" > 9 # True (numeric first, lexicographic second) print [] > float('inf') # True (non-numeric ordering) print () > [] # True (non-numeric ordering)
Tingkah laku ini diberi mandat oleh pelaksanaan CPython Python 2. Spesifikasi bahasa menyatakan bahawa objek dari jenis yang berbeza disusun "sewenang-wenangnya tetapi konsisten," meninggalkan butiran sehingga pelaksanaan.
Dalam Python 3, perbandingan antara integer dan rentetan menimbulkan ralat. Pelaksanaan Python yang lain juga mungkin mempunyai gelagat yang sedikit berbeza.
Atas ialah kandungan terperinci Bagaimanakah Python 2 Membandingkan Objek Pelbagai Jenis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!