ในบทช่วยสอนนี้ เราจะเรียนรู้ฟังก์ชัน built-in type() และ isinstance() ใช้สำหรับตรวจสอบชนิดข้อมูล (Data Type) ของออบเจ็กต์
type(object)
คืนค่าชนิดข้อมูลของออบเจ็กต์ เช่น type(5) → <class 'int'>
ตัวอย่าง
val = 5 object_type = type(val) print(object_type)
ผลลัพธ์
<class 'int'>
isinstance(object, class)
รับ 2 อาร์กิวเมนต์: object และ class คืนค่า True ถ้า object เป็น subclass ของ class นั้น มิฉะนั้น False
ตัวอย่างที่ 1: ตรวจสอบ set
nums = {1, 2, 3}
print(isinstance(nums, set))ผลลัพธ์
True
ตัวอย่างที่ 2: ตรวจสอบ Custom Class
class SampleClass:
def __init__(self):
self.sample = 5
sample_class = SampleClass()
print(sample_class.sample)
print(isinstance(sample_class, SampleClass))ผลลัพธ์
5 True
ความแตกต่างระหว่าง type() และ isinstance()
- type() ตรวจสอบ exact type (ต้องตรงเป๊ะๆ)
- isinstance() ตรวจสอบ inheritance hierarchy (รองรับ subclass ด้วย) - แนะนำให้ใช้ isinstance() สำหรับ type checking ทั่วไป
สรุป
ใช้ type() เมื่อต้องการเช็ค type แบบ exact ใช้ isinstance() เมื่อต้องการเช็ครวม subclass ด้วย (Best Practice) หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น