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

Python isinstance(): ตรวจสอบชนิดข้อมูลแบบแม่นยำ

ฟังก์ชัน isinstance() ใน Python คืนค่า True/False ว่าตัวแปรตรงกับชนิดข้อมูลที่ระบุ ไวยากรณ์: isinstance(variable_to_check, data_type)

บทนำ

การตรวจสอบ Data Type เป็น Operation พื้นฐาน เช่น ต้องการทราบว่าตัวแปรเป็น String หรือ Number เพราะแต่ละ Type รองรับ Operation ต่างกัน isinstance() ช่วย Verify ได้อย่างชัดเจน

ไวยากรณ์และพารามิเตอร์

isinstance(object, data_types)
  • object – อ็อบเจกต์ที่ต้องการตรวจสอบ
  • data_types – ชนิดข้อมูลหรือ Tuple ของชนิดข้อมูลหลายชนิด (เช่น (int, float))

คืน True ถ้า Object เป็น Instance ของ Type ที่ระบุ (หรือ Subclass) มิฉะนั้น False

ตัวอย่างการใช้งาน

ตรวจสอบ String

print(isinstance("Hello", str))  # True

ตรวจสอบตัวเลข (int หรือ float)

answer = 5 * 8
user_input = input("What is 5 x 8? ")  # คืน String เสมอ
print(isinstance(user_input, (int, float)))  # False

# แปลงเป็น int ก่อน
user_answer = int(input("What is 5 x 8? "))
print(isinstance(user_answer, (int, float)))  # True

จุดสำคัญ: input() คืนค่า String ต้องแปลง Type ก่อนตรวจสอบ

ตรวจสอบกับ Custom Class

class Dog: pass
class Cat: pass

buddy = Dog()
print(isinstance(buddy, Dog))   # True
print(isinstance(buddy, Cat))   # False
print(isinstance(buddy, (Dog, Cat)))  # True

isinstance() vs type()

ฟังก์ชันการทำงานเหมาะสำหรับ
type(obj)คืน Type Object ของ obj (<class 'int'>)ดู Type จริงของ Object
isinstance(obj, Type)คืน True/False ว่า obj เป็น Instance ของ Type (รวม Subclass)Verify Type ในเงื่อนไข (if isinstance...)

isinstance() รองรับ Inheritance (Subclass ถือเป็น Instance ของ Parent Class) ส่วน type() ตรวจสอบ Exact Type เท่านั้น

สรุป

isinstance() เป็นเครื่องมือมาตรฐานสำหรับ Type Checking ใน Python ใช้ในเงื่อนไข IF เพื่อป้องกัน Error จาก Type ผิดพลาด และรองรับการตรวจสอบหลาย Type พร้อมกันด้วย Tuple