Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชัน cmp() ใน Python OOP ทำอะไร

ฟังก์ชัน cmp()

cmp(x, y) เปรียบเทียบค่าของ 2 อาร์กิวเมนต์ x และ y

  • คืนค่าติดลบ หาก x < y
  • คืนค่า 0 หาก x == y
  • คืนค่าบวก หาก x > y

Built-in cmp() มักคืน -1, 0, 1 เท่านั้น แต่ฟังก์ชันอื่นที่มี signature เดียวกันอาจคืนค่าอื่น ควรดูแค่เครื่องหมายของผลลัพธ์

>>> cmp(2, 8)   # -1
>>> cmp(6, 6)   # 0
>>> cmp(4, 1)   # 1
>>> cmp('stackexchange', 'stackoverflow')  # -1

เปรียบเทียบ List

เมธอด cmp() เปรียบเทียบสมาชิกของ 2 ลิสต์

cmp(list1, list2)
  • ชนิดเดียวกัน: เปรียบเทียบตรงๆ
  • ชนิดต่างกัน: ถ้าเป็นตัวเลข ทำ Numeric Coercion แล้วเปรียบเทียบ
  • ถ้าตัวใดตัวหนึ่งเป็นตัวเลข อีกตัวถือว่า "ใหญ่กว่า" (ตัวเลขเป็น "เล็กที่สุด")
  • มิฉะนั้น: เรียงตามชื่อชนิด (Alphabetically by name)
  • ถึงปลายลิสต์ใดลิสต์หนึ่ง: ลิสต์ที่ยาวกว่า "ใหญ่กว่า" หากทั้งสองหมดและข้อมูลเหมือนกัน: คืน 0 (Tie)

ตัวอย่าง

list1, list2 = [456, 'xyz'], [789, 'abc']
print(cmp(list1, list2))   # -1
print(cmp(list2, list1))   # 1
list3 = list2 + [896]
print(cmp(list2, list3))   # -1