ที่ isinstance()
ฟังก์ชันใน Python จะคืนค่า true หรือ false หากตัวแปรตรงกับประเภทข้อมูลที่ระบุ ไวยากรณ์สำหรับ isinstance()
ใน Python คือ isinstance(variable_to_check, data_type)
การตรวจสอบชนิดข้อมูลของค่าเฉพาะเป็นการดำเนินการทั่วไปในการเขียนโปรแกรม ตัวอย่างเช่น คุณอาจต้องการตรวจสอบว่าค่าที่คุณเก็บไว้ในตัวแปรเป็นสตริงหรือตัวเลข เนื่องจากข้อมูลแต่ละประเภททำงานในโค้ดต่างกัน
นั่นคือสิ่งที่ isinstance()
ฟังก์ชันจะมีประโยชน์ isinstance()
เป็นวิธี Python ในตัวที่ให้คุณตรวจสอบประเภทข้อมูลของค่าเฉพาะได้ ตัวอย่างเช่น คุณสามารถใช้ isinstance()
เพื่อตรวจสอบว่าค่าเป็นสตริงหรือรายการ
บทแนะนำนี้จะแนะนำคุณเกี่ยวกับวิธีใช้ isinstance()
วิธีการใน Python และจะยกตัวอย่างบางส่วนเพื่อช่วยให้คุณเข้าใจได้ดีขึ้น
ภาพรวมของ Python isinstance
เมื่อคุณเขียนโค้ดใน Python คุณจะใช้ข้อมูลประเภทต่างๆ ชนิดข้อมูลเหล่านี้รวมถึงสตริง ตัวเลข รายการ ทูเพิล และพจนานุกรม ข้อมูลทุกประเภทมีชุดของกฎเกณฑ์ที่ควบคุมวิธีการจัดเก็บและจัดการข้อมูลนั้น ตัวอย่างเช่น เมื่อใช้ Python คุณสามารถคำนวณทางคณิตศาสตร์กับตัวเลขได้ แต่ไม่สามารถใช้กับสตริงได้
ด้วยเหตุนี้ คุณจึงต้องทำงานกับประเภทข้อมูลที่ถูกต้องในโปรแกรมของคุณ คุณสามารถใช้ isinstance ใน Python เพื่อตรวจสอบว่าข้อมูลที่คุณใช้งานถูกจัดเก็บเป็นประเภทข้อมูลที่เหมาะสม เมื่อใช้ Python ให้ตรวจสอบประเภทข้อมูลตามต้องการ
isinstance()
เป็นฟังก์ชันที่สร้างขึ้นใน Python ที่ตรวจสอบว่าค่าถูกจัดเก็บเป็นประเภทข้อมูลเฉพาะหรือไม่ ไม่เหมือนกับ type()
ซึ่งจะกล่าวถึงในบทความนี้ต่อไปว่า isinstance()
วิธีการส่งคืนเฉพาะ True
หรือ False
ขึ้นอยู่กับว่าค่าที่คุณกำลังตรวจสอบถูกจัดเก็บเป็นประเภทข้อมูลหรือประเภทที่คุณระบุหรือไม่
ไวยากรณ์สำหรับ isinstance()
เป็นดังนี้:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
isinstance(object, data_types)
isinstance()
เมธอดใช้พารามิเตอร์สองตัว ซึ่งจำเป็นทั้งสองอย่าง:
- วัตถุ :วัตถุที่มีประเภทข้อมูลที่คุณต้องการตรวจสอบ
- data_types :อย่างน้อยหนึ่งชนิดข้อมูลที่เป็นไปได้ของอ็อบเจ็กต์
isinstance()
เมธอดจะเปรียบเทียบอ็อบเจ็กต์กับประเภทข้อมูลที่คุณระบุ หากคุณต้องการเปรียบเทียบออบเจ็กต์กับข้อมูลสองประเภทขึ้นไป คุณจะต้องระบุทูเพิลเป็นพารามิเตอร์ data_types
ในการตอบกลับ รหัสของคุณจะส่งคืน True
หรือ False
. รหัสส่งคืน True
ถ้าวัตถุเป็นของชนิดข้อมูล (หรือชนิดข้อมูลอย่างใดอย่างหนึ่ง) ที่คุณระบุ และ False
ถ้าไม่.
โดยพื้นฐานแล้ว เมื่อคุณใช้ isinstance ใน Python คุณกำลังนำเสนอโค้ดของคุณด้วยคำสั่งกรอกข้อมูลในช่องว่างและตัวเลือกคำตอบอย่างน้อยหนึ่งตัวเลือก คำสั่งของคุณคือ:This object is a (data type)
. การระบุพารามิเตอร์ชนิดข้อมูลจะทำให้คำสั่งนั้นสมบูรณ์ สองตัวอย่างคือ:
12
เป็นตัวเลขbooks
เป็นตัวเลข
ในการตอบกลับ รหัสของคุณจะส่งคืน True
หรือ False
.
ตัวอย่าง Python isinstance
มาดูสองตัวอย่างเพื่อแสดงให้เห็นว่าคุณสามารถใช้ isinstance()
. ได้อย่างไร วิธีการในรหัสของคุณ สมมติว่าเรามีค่า และเราต้องการตรวจสอบว่าค่านั้นเป็นสตริง เราสามารถใช้ isinstance()
เพื่อทำสิ่งนี้. นี่คือรหัสที่เราสามารถใช้ได้:
print(isinstance("String", str))
รหัสของเราทำการตรวจสอบประเภทแล้วฟังก์ชันของเราส่งคืน:True
.
เพราะ String
จริงๆ แล้วเป็นสตริง (str
คือวิธีที่คุณอ้างถึงประเภทข้อมูล string
ใน Python) โปรแกรมของเราส่งคืน True
.
ตอนนี้เราจะสำรวจตัวอย่างที่มีรายละเอียดมากขึ้น
สมมติว่าเรากำลังสร้างเกมการคูณสำหรับชั้นประถมศึกษาปีที่สอง เกมของเรานำเสนอปัญหาทางคณิตศาสตร์แก่ผู้ใช้ จากนั้นจะตรวจสอบคำตอบของผู้ใช้เพื่อดูว่าถูกต้องหรือไม่ เพื่อให้โปรแกรมของเราทำงานได้ เราต้องตรวจสอบให้แน่ใจว่าผู้ใช้ได้ป้อนตัวเลขลงในเกมของเราแล้ว
เพื่อตรวจสอบว่าคำตอบที่เรารวบรวมจากผู้เล่นเป็นตัวเลขหรือไม่ เราสามารถใช้รหัสนี้:
answer = 5 * 8 user_answer = input("What is 5 x 8?") print(isinstance(user_answer, (int, float)))
รหัสของเราส่งคืน:False
.
มาทำลายโปรแกรมของเรากัน ในบรรทัดแรก เราคำนวณคำตอบของโจทย์คณิตศาสตร์ที่เรานำเสนอต่อผู้เล่น ในกรณีนี้ ปัญหาทางคณิตศาสตร์นั้นคือ What is 5 x 8?
ดังนั้นเราจึงป้อน answer = 5 * 8
สำหรับบรรทัดแรกของรหัสของเรา
จากนั้น เราใช้ input()
วิธีการดึงคำตอบจากผู้ใช้
ในบรรทัดสุดท้ายของโค้ด เราใช้ isinstance()
เพื่อตรวจสอบว่าคำตอบของผู้ใช้ของเรา (เก็บไว้ใน user_answer
) เป็นจำนวนเต็มหรือทศนิยม ซึ่งเป็นประเภทข้อมูลสองประเภทที่ใช้แทนตัวเลขใน Python เราทำสิ่งนี้โดยการสร้างทูเพิลที่เก็บประเภทข้อมูลซึ่งเราต้องการตรวจสอบค่าของเรา ในโค้ดของเรา ทูเพิลนี้คือ:(int, float)
.
รหัสของเราส่งคืน False
ซึ่งบอกเราว่าคำตอบของผู้ใช้ไม่ใช่จำนวนเต็ม (int) หรือทศนิยม
ตอนนี้เราทราบแล้วว่าวัตถุของเราไม่ใช่อินสแตนซ์ของ int หรือ float เราสามารถเริ่มวินิจฉัยปัญหาได้ รหัสของเราส่งคืน False
เพราะ input()
ให้สตริงแก่เราโดยค่าเริ่มต้น แม้ว่าผู้ใช้จะป้อนตัวเลขก็ตาม ดังนั้น เพื่อให้โค้ดของเราใช้งานได้ เราจำเป็นต้องแปลงผลลัพธ์ของ input()
. ของเรา วิธีการเป็นจำนวนเต็ม เราสามารถทำได้โดยใช้รหัสต่อไปนี้:
answer = 5 * 8 user_answer = int(input("What is 5 x 8?")) print(isinstance(user_answer, (int, float)))
เมื่อเรารันโค้ดของเรา เราได้รับ:True
.
ความแตกต่างเพียงอย่างเดียวระหว่างตัวอย่างนี้กับตัวอย่างก่อนหน้านี้คือ ในโค้ดนี้ บน user_answer
เราแปลงผลลัพธ์ของ input()
. ของเรา วิธีการเป็นจำนวนเต็มโดยใช้ int()
. ดังนั้น โปรแกรมจะลงทะเบียนอินพุตเป็นจำนวนเต็มแทนที่จะเป็นสตริง ดังนั้นเมื่อเราตรวจสอบประเภทข้อมูลของค่านี้โดยใช้ isinstance()
เมธอด โปรแกรมของเราตรวจสอบว่าค่าเป็นจำนวนเต็มหรือทศนิยม
ในตัวอย่างข้างต้น เราได้ตรวจสอบว่าอ็อบเจ็กต์มีประเภทข้อมูลในตัวหรือไม่ isinstance()
เมธอดยังสามารถใช้เพื่อเปรียบเทียบอ็อบเจ็กต์กับคลาสเฉพาะได้อีกด้วย
ประเภทเทียบกับอินสแตนซ์
หากคุณเคยต้องตรวจสอบประเภทของค่าใน Python คุณอาจเคยเจอ type()
กระบวนการ. type()
เป็นฟังก์ชัน Python ในตัวที่สามารถใช้ค้นหาชนิดของตัวแปรหรือค่าได้ นี่คือไวยากรณ์สำหรับวิธีประเภท Python:
type(data)
ตัวอย่างเช่น สมมติว่าคุณมีตัวเลขและคุณต้องการตรวจสอบว่ามีการเข้ารหัสประเภทข้อมูลใดบ้าง คุณสามารถทำได้โดยใช้รหัสต่อไปนี้:
number = 8 print(type(number))
รหัสของเราส่งคืน:
<class 'int'>
อย่างที่คุณเห็น โปรแกรมของเราส่งคืนประเภทข้อมูลของเรา มันบอกเราว่าข้อมูลนี้ถูกเก็บไว้เป็นจำนวนเต็ม
มีความแตกต่างใหญ่อย่างหนึ่งระหว่าง type()
และ isinstance()
ฟังก์ชันที่เหมาะสมต่อการใช้งานมากกว่าฟังก์ชันอื่นในบางสถานการณ์ หากคุณต้องการดูประเภทข้อมูลของค่า type()
อาจจะเหมาะสมกว่า แต่ถ้าคุณต้องการตรวจสอบว่าค่าถูกเก็บไว้เป็น บางค่า ชนิดหรือประเภทข้อมูล เช่น สตริงหรือทุ่น คุณควรใช้ isinstance()
.
บทสรุป
ใน Python คุณสามารถใช้ isinstance()
ฟังก์ชันเพื่อตรวจสอบว่าค่ามีประเภทข้อมูลเฉพาะหรือไม่ ตัวอย่างเช่น หากคุณต้องการตรวจสอบว่ารายการของค่าถูกจัดเก็บเป็นรายการ หรือหากตัวเลขถูกจัดเก็บเป็นทศนิยม คุณสามารถใช้ isinstance()
.
บทช่วยสอน Python นี้สาธิตวิธีใช้ isinstance()
เพื่อตรวจสอบว่าค่ามีข้อมูลบางประเภทหรือไม่ ตอนนี้คุณมีข้อมูลที่ต้องใช้ isinstance()
เหมือนกับปรมาจารย์ของ Python