ตรวจสอบว่าค่าเป็นชนิดในตัว คลาสค่าของ 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))