เป็นหนึ่งในภาษาโปรแกรมที่ทรงพลังที่สุดในตลาดปัจจุบัน Python ยังรองรับการใช้งานภาษาโปรแกรมอื่น ๆ ภายในระบบนิเวศเช่น Java, C และ C ++ จากโมดูลและฟังก์ชันมากมายที่มีอยู่ในระบบนิเวศของ Python สิ่งหนึ่งที่โดดเด่นในส่วนที่เหลือคือ isinstance ใน Python ดังนั้นในบทความนี้เราจะพูดถึงรายละเอียดเกี่ยวกับ isinstance การใช้งานและคุณสมบัติที่นำมาสู่ตาราง
คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
- Isinstance ใน Python คืออะไร?
- พารามิเตอร์และค่าส่งกลับของ Isinstance
- การใช้ Type ใน Python
- ความแตกต่างระหว่าง Type () และ Isinstance
Isinstance ใน Python คืออะไร?
Python isinstance ใช้เพื่อตรวจสอบว่าออบเจ็กต์แรกที่เป็นอาร์กิวเมนต์เป็นอินสแตนซ์หรือคลาสย่อยของคลาส classinfo ที่เป็นอาร์กิวเมนต์ที่สองหรือไม่
ตารางธาตุของเครื่องมือ devops
ไวยากรณ์สำหรับ isinstance ใน Python มีดังนี้
isinstance (วัตถุ classinfo)
ให้เราดูว่า Isinstance ใน Python มีพารามิเตอร์และค่าส่งคืนใดบ้าง
พารามิเตอร์และค่าส่งกลับของ Isinstance
พารามิเตอร์
เมื่อคุณทราบถึงไวยากรณ์สำหรับ isinstance แล้วให้เรามาดูพารามิเตอร์ที่จะต้องพิจารณาอย่างละเอียดยิ่งขึ้น
- วัตถุ: นี่คือวัตถุที่ต้องตรวจสอบ
- Classinfo: นี่คือคลาสข้อมูลหรือทูเพิลของคลาสที่อ็อบเจ็กต์ต้องถูกตรวจสอบ
ส่งคืนค่า
เมื่อใช้ isinstance ในโปรแกรมค่าส่งคืนจะขึ้นอยู่กับเงื่อนไขหลายประการดังที่อธิบายไว้ในคำแนะนำด้านล่าง
- True จะถูกส่งกลับหากอ็อบเจ็กต์เป็นคลาสย่อยของ classinfo หรือ tuple ของคลาส
- False จะถูกส่งกลับหากอ็อบเจ็กต์ไม่ใช่คลาสย่อยของ classinfo หรือ tuple ของคลาส
หากอยู่ในสถานการณ์เฉพาะ classinfo ไม่ใช่ประเภทหรือทูเพิลประเภทข้อยกเว้น typeerror จะถูกยกขึ้นบนหน้าจอของผู้ใช้
ตัวอย่าง
เพื่อให้เข้าใจการใช้ isinstance ได้ดีขึ้นลองดูตัวอย่างบางส่วน
ตัวอย่าง # 1
class Foo: a = 5 fooInstance = Foo () print (isinstance (fooInstance, Foo)) print (isinstance (fooInstance, (list, tuple))) print (isinstance (fooInstance, (list, tuple, Foo)))
เอาต์พุต
จริง
เท็จ
จริง
Isinstance ใน Python: ตัวอย่าง # 2
numbers = [1, 2, 3] result = isinstance (numbers, list) print (numbers, 'instance of list?', result) result = isinstance (numbers, dict) print (numbers, 'instance of dict?', ผลลัพธ์ ) result = isinstance (numbers, (dict, list)) print (numbers, 'instance of dict or list?', result) number = 5 result = isinstance (number, list) print (number, 'instance of list?', ผลลัพธ์) result = isinstance (number, int) print (number, 'instance of int?', result)
เอาต์พุต
[1, 2, 3] รายการ? จริง
[1, 2, 3] อินสแตนซ์ของ dict? เท็จ
[1, 2, 3] อินสแตนซ์ของคำสั่งหรือรายการ? จริง
5 ตัวอย่างรายการ? เท็จ
5 อินสแตนซ์ของ int? จริง
ตัวอย่าง # 3
# รหัส Python สำหรับ isinstance () class Test: a = 5 TestInstance = Test () print (isinstance (TestInstance, Test)) print (isinstance (TestInstance, (list, tuple))) print (isinstance (TestInstance, (list, tuple , ทดสอบ)))
เอาต์พุต
php สร้างอาร์เรย์จากสตริง
จริง
เท็จ
จริง
ให้เราดำเนินการต่อกับบทความ 'Isinstance In Python' และและทำความเข้าใจการใช้วิธีการ Type
การใช้ Type ใน Python
คล้ายกับ isinstance มีอีกวิธีหนึ่งในตัวใน Python ซึ่งใช้เพื่อตรวจสอบตัวแปร type pf ที่ใช้ระหว่างรันไทม์ หากอาร์กิวเมนต์หรืออ็อบเจ็กต์เดียวถูกส่งผ่านเมธอด type จะส่งกลับประเภทของอ็อบเจ็กต์ที่กำลังใช้ระหว่างรันไทม์
เพื่อให้เข้าใจสิ่งนี้ได้ดีขึ้นลองดูตัวอย่างด้านล่าง
Isinstance ใน Python: ตัวอย่าง # 1.1
# ประเภทรหัส Python () ที่มีพารามิเตอร์ออบเจ็กต์เดียว x = 5 s = 'sampleoutput' y = [1,2,3] พิมพ์ (พิมพ์ (x)) พิมพ์ (ประเภท (s)) พิมพ์ (ประเภท (y))
เอาต์พุต
คลาส 'int'
คลาส 'str'
คลาส 'รายการ'
ตัวอย่าง # 1.2
# รหัส Python สำหรับ type () พร้อมชื่อ # ฐานและพารามิเตอร์ dict o1 = type ('X', (object,), dict (a = 'Foo', b = 12)) print (type (o1)) print (vars (o1)) การทดสอบคลาส: a = 'Foo' b = 12 o2 = type ('Y', (test,), dict (a = 'Foo', b = 12)) print (type (o2)) พิมพ์ (vars (o2))
เอาต์พุต
{‘b’: 12, ‘a’: ‘Foo’, ‘__dict__’:, ‘__doc__’: ไม่มี, ‘__weakref__’:}
{‘b’: 12, ‘a’: ‘Foo’, ‘__doc__’: ไม่มี}
ให้เราเปรียบเทียบ Type และ Isinstance ใน Python
ความแตกต่างระหว่าง Type () และ Isinstance
พิมพ์และ isinstance ใน Python ให้บริการสองฟังก์ชันที่แตกต่างกันมาก ลองดูคำแนะนำด้านล่างเพื่อทำความเข้าใจความแตกต่างให้ดีขึ้น
- หากคุณต้องการตรวจสอบว่าวัตถุมีบางประเภทหรือไม่ควรใช้ isinstance เนื่องจาก isinstance จะสามารถตรวจสอบได้ว่าออบเจ็กต์ที่ส่งผ่านในอาร์กิวเมนต์แรกเป็นประเภทเดียวกับที่ส่งผ่านในอาร์กิวเมนต์ที่สองหรือไม่
- ในทางกลับกันการใช้ประเภทเป็นที่ต้องการมากกว่าเมื่อคุณต้องการตรวจสอบประเภทของวัตถุเฉพาะและไม่เปรียบเทียบกับวัตถุอื่น
ตัวอย่าง
# รหัส Python เพื่อแสดงคลาสการพิมพ์เป็ด User (object): def __init __ (self, firstname): self.firstname = firstname @property def name (self): return self.firstname class Animal (object): pass class Fox (Animal) : name = 'Fox' class Bear (Animal): name = 'Bear' # ใช้แอตทริบิวต์. name (หรือคุณสมบัติ) โดยไม่คำนึงถึงประเภทสำหรับใน [User ('SampleOutput'), Fox (), Bear ()] : พิมพ์ (a.name)
เอาต์พุต
ตัวอย่าง
ฟ็อกซ์
หมี
วิธีหาความยาวของอาร์เรย์ในจาวาสคริปต์
อีกเหตุผลหนึ่งที่จะไม่ใช้วิธีการประเภทคือการขาดการถ่ายทอดทางพันธุกรรม ดูตัวอย่างที่แบ่งปันด้านล่างเพื่อทำความเข้าใจสิ่งนี้ให้ดีขึ้น
รหัส #python เพื่อแสดงให้เห็นถึงการขาด #support สำหรับการสืบทอดในประเภท () คลาส MyDict (dict): '' 'คำสั่งปกติที่สร้างขึ้นด้วยคีย์' เริ่มต้น '' '' def __init __ (self): self 'initial'] = 'some data' d = MyDict () print (type (d) == dict) print (type (d) == MyDict) d = dict () print (type (d) == dict) print (ประเภท (d) == MyDict)
เอาต์พุต
เท็จ
จริง
จริง
เท็จ
นี่มันพวกเรามาถึงตอนท้ายของบทความนี้ ฉันหวังว่าคุณจะเข้าใจ Isinstance ใน Python และสิ่งที่มันทำ
หากต้องการรับความรู้เชิงลึกเกี่ยวกับ Python พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถทำได้ สำหรับการฝึกอบรมออนไลน์สดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต
มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นของบทความนี้แล้วเราจะติดต่อกลับไป