isinstance

ตรวจสอบว่าค่าเป็นชนิดในตัว คลาสค่าของ DSL หรือคลาสที่ผู้ใช้กำหนดเอง โดยไม่แปลงค่า

รูปแบบคำสั่ง

isinstance(value, class_or_tuple, /)

พารามิเตอร์

ชื่อคำอธิบาย
valueAny
ค่าที่ต้องการตรวจสอบ
จำเป็น · ระบุตามตำแหน่งเท่านั้น
ไม่มีค่าเริ่มต้น
class_or_tupleType | tuple[Type, ...]
ใช้การอ้างอิงชนิดโดยไม่ใส่เครื่องหมายคำพูด: bool, int, float, str, list, tuple, dict, set, range, enumerate, zip; คลาสค่าของ DSL เช่น Point, Match หรือ AudioMatch; หรือคลาสที่ผู้ใช้กำหนดเอง tuple สามารถซ้อนกันได้และตรวจสอบจากซ้ายไปขวาจนกว่าจะพบค่าที่ตรงกัน หากพบรายการที่ไม่ถูกต้องก่อนพบค่าที่ตรงกันจะเกิด TypeError ไม่รับสตริงหรือ type(value) เพราะ type() ส่งคืนข้อความ ส่วน Flow, System, Storage, Touch, ScreenCapture และ Recognition เป็นเนมสเปซหรือบริบท ไม่ใช่ชนิด
จำเป็น · ระบุตามตำแหน่งเท่านั้น
ไม่มีค่าเริ่มต้น

ค่าที่ส่งกลับ

Boolean — คืนค่า True เมื่อชนิดตรงกัน มิฉะนั้นคืนค่า False รวมถึงเมื่อ tuple ว่าง bool ตรงกับ int ด้วย ส่วน int และ float เป็นคนละชนิด คลาสที่ผู้ใช้กำหนดเองจะเปรียบเทียบตามการกำหนดคลาส แม้จะมีชื่อเหมือนกัน

ตัวอย่าง

# ตรวจสอบชนิดของค่าก่อนใช้งาน
value = 42
if isinstance(value, (int, float)):
    print(value + 1)
print(isinstance(Point(10, 20), Point))